如何在PHP中使用数组映射来使用str_pad?
我试图在PHP中使用如何在PHP中使用数组映射来使用str_pad?,php,arrays,array-map,Php,Arrays,Array Map,我试图在PHP中使用str\u-pad和array\u-map。但它似乎不起作用。代码片段: $arr = ["", "a", "ab", "abc", "abcd"]; $arr = array_map("str_pad", $arr, [4, "0", STR_PAD_LEFT]); var_dump($arr); 结果是: array(5) { [0]=> string(4) " " [1]=> string(1) "a" [2]=> st
str\u-pad
和array\u-map
。但它似乎不起作用。代码片段:
$arr = ["", "a", "ab", "abc", "abcd"];
$arr = array_map("str_pad", $arr, [4, "0", STR_PAD_LEFT]);
var_dump($arr);
结果是:
array(5) {
[0]=>
string(4) " "
[1]=>
string(1) "a"
[2]=>
string(2) "ab"
[3]=>
string(3) "abc"
[4]=>
string(4) "abcd"
}
我无法解释自己的这种行为。。$arr[0]
已填充,但仅使用空格而不是零,其他元素与以前一样
如何调整我的代码,使其返回如下内容:
array(5) {
[0]=>
string(4) "0000"
[1]=>
string(4) "000a"
[2]=>
string(4) "00ab"
[3]=>
string(4) "0abc"
[4]=>
string(4) "abcd"
}
给你()
您可以在手册中查看有关如何工作的更多详细信息。基本上,如果使用多个数组调用它,在第一次调用时,函数的第一个参数将是第一个数组的第一个元素,第二个参数将是第二个数组的第一个元素,依此类推 我之前已经回答了一个类似的问题:回调函数针对传入参数的每个数组中的每个元素运行。它将把
“
与4
匹配,“a”
与0
匹配,“ab”
与STR\u PAD\u LEFT
匹配。我很确定那不是你想要的。
$arr = ["", "a", "ab", "abc", "abcd"];
$arr = array_map(function ($item) {
return str_pad($item, 4, "0", \STR_PAD_LEFT);
},
$arr
);
var_dump($arr);