2017-03-03 12 views
2

나는 array_map을 PHP로 사용하여 str_pad을 사용하려고합니다. 하지만 작동하지 않는 것 같습니다. 코드입니다 - 조각 : $arr[0]가 작성됩니다 ..PHP에서 array_map을 사용하여 str_pad를 사용하는 방법은 무엇입니까?

array(5) { 
    [0]=> 
    string(4) " " 
    [1]=> 
    string(1) "a" 
    [2]=> 
    string(2) "ab" 
    [3]=> 
    string(3) "abc" 
    [4]=> 
    string(4) "abcd" 
} 

는 나 자신이 행동을 설명 할 수는 없지만 단지 대신 제로의 공백과 다른 요소와 같다 :

$arr = ["", "a", "ab", "abc", "abcd"]; 
$arr = array_map("str_pad", $arr, [4, "0", STR_PAD_LEFT]); 
var_dump($arr); 

결과입니다 전에.

즉,이 같은 반환 뭔가 그래서 내 코드에 적응하는 방법

: 당신은 방법에 대한 자세한 내용은 설명서의 모습을 가질 수 있습니다 여기에

array(5) { 
    [0]=> 
    string(4) "0000" 
    [1]=> 
    string(4) "000a" 
    [2]=> 
    string(4) "00ab" 
    [3]=> 
    string(4) "0abc" 
    [4]=> 
    string(4) "abcd" 
} 
+0

이전에 이미 비슷한 질문에 답했습니다 : http://stackoverflow.com/questions/41286693/php-array-map-trim-parameters/41286762#41286762 –

+0

전달 된 각 배열의 각 요소에 대해 콜백 함수가 실행되었습니다 인수에서. ''''와'4 ',''a''와''0''과''ab ''를'STR_PAD_LEFT'와 매치합니다. 나는 그것이 당신이 원하는 것이 아니라고 확신합니다. – apokryfos

답변

1

당신이 가서 (working demo)

$arr = ["", "a", "ab", "abc", "abcd"]; 
$arr = array_map(function ($item) { 
     return str_pad($item, 4, "0", \STR_PAD_LEFT); 
    }, 
    $arr 
); 
var_dump($arr); 

array_map()가 작동합니다. 기본적으로 여러 배열로 호출하면 첫 번째 호출에서 함수의 첫 번째 매개 변수는 첫 번째 배열의 첫 번째 요소가되고 두 ​​번째 매개 변수는 두 번째 배열의 첫 번째 요소가됩니다.