PHP:如何从 foreach 循环内部修改数组(通过引用)

eme*_*his 2 php arrays multidimensional-array

可能的重复:
如何通过 foreach 循环修改数组的值?

为什么这不起作用?

$user_list_array = array(
    1 => array( "first_name" => "Jim" ),
    2 => array( "first_name" => "Bob" )
)

foreach ($user_list_array as $item ) {
    echo $item["first_name"];
    $item["last_name"] = "test";
} 

var_dump($user_list_array );
Run Code Online (Sandbox Code Playgroud)

我可以取回“first_name”,但不能添加“last_name”;

Mar*_*ker 5

您正在修改 $item,这是 $user_list_array 相关条目的副本

要么:( 修改原始数组)

foreach ($user_list_array as $key => $item ) { 
    echo $item["first_name"]; 
    $user_list_array[$key]["last_name"] = "test"; 
} 
Run Code Online (Sandbox Code Playgroud)

或:( 参考)

foreach ($user_list_array as &$item ) { 
    echo $item["first_name"]; 
    $item["last_name"] = "test"; 
} 
unset($item);
Run Code Online (Sandbox Code Playgroud)