Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用数组映射来使用str_pad?_Php_Arrays_Array Map - Fatal编程技术网

如何在PHP中使用数组映射来使用str_pad?

如何在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

我试图在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]=>
  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);