Когда я передаю массив в качестве дополнительного аргумента для обхода массива, он не интерпретируется так, как я ожидал.
function boom($item, $z )
{
print_r("\n".$item);
print_r("\n".$z);
}
$z=[ "alpha", "bravo" ];
$x=[ "one", "two" ];
array_walk( $x, 'boom', $z );
Выход:
one
0
two
1
Почему ноль и один напечатан?
Почему я не печатаю альфа и браво? Как я могу получить альфа и браво включены в вывод?
Спасибо!
Вы должны изменить код, чтобы передать $ z в качестве третьего параметра, например:
function boom($item, $i, $z )
{
print_r("\n".$item);
print_r("\n".$z[$i]);
}
$z=[ "alpha", "bravo" ];
$x=[ "one", "two" ];
array_walk( $x, 'boom', $z );
Вы можете найти больше здесь: http://php.net/manual/en/function.array-walk.php
Если указан необязательный параметр userdata, он будет передан как
третий параметр для обратного вызова.
Других решений пока нет …