Как использовать str_pad с помощью array_map в PHP?

Я пытаюсь использовать str_pad с помощью array_map в PHP. Но похоже, что это не работает. Фрагмент кода:

$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"
}

person Guy    schedule 03.03.2017    source источник
comment
Я уже отвечал на аналогичный вопрос раньше: stackoverflow.com/questions/41286693/   -  person Bartosz Zasada    schedule 03.03.2017
comment
Функция обратного вызова запускается для каждого элемента в каждом массиве, переданном в аргументах. Он будет соответствовать "" с 4 , "a" с 0 и "ab" с STR_PAD_LEFT. Я почти уверен, что это не то, чего ты хочешь.   -  person apokryfos    schedule 03.03.2017


Ответы (1)