Php 使用引用创建数组会复制元素

Php 使用引用创建数组会复制元素,php,arrays,Php,Arrays,为了使用call\u user\u func\u数组,我试图通过引用传递数组值,并且我一直在为foreach循环中设置的元素获取重复的值。我怎样才能解决这个问题 foreach($non_empty_fields as $key => $value){ $values_array[] = &$value; } unset ($value); $values_array[] = &$user_id; print_r($non_empty_fields)

为了使用call\u user\u func\u数组,我试图通过引用传递数组值,并且我一直在为foreach循环中设置的元素获取重复的值。我怎样才能解决这个问题

foreach($non_empty_fields as $key => $value){
    $values_array[] = &$value;
}
unset ($value);
$values_array[] = &$user_id;        
print_r($non_empty_fields);
print_r($values_array);
打印出来

Array
(
    [gender] => female
    [device_id] => 1213423489ydasxas98y76
)
Array
(
    [0] => 1213423489ydasxas98y76
    [1] => 1213423489ydasxas98y76
    [2] => 35
)

尝试引用数组项,如:

$non_empty_fields = array('gender' => 'female', 'device_id' => '1213...');

foreach($non_empty_fields as $key => $value) {
   $values_array[] = &$non_empty_fields[$key];
}
打印\r$values\u数组返回值


问题是因为您在foreach循环中引用了$value:

您需要在$non_empty_字段中引用实际值:

输出:

Array
(
    [0] => female
    [1] => 1213423489ydasxas98y76
    [2] => 35
)

这是非常值得一读的,通过这些例子,因为他们并不总是以一种直观的方式行动,至少在IMHO

请注意,OP表示我正在尝试通过引用传递数组值。您试图得到什么结果?@ialarmedalien[0]=>female[1]=>1213423489ydasxas98y76[2]=>35只是没有重复项您在这里有一个数组,数组中不能有任何引用传递的值。数组本身可以通过引用传递。或者foreach$non_empty_字段作为&$value{$values_数组[]=$value;}unset$value;
foreach($non_empty_fields as $key => $value){
    $values_array[] = &$value;
}
foreach($non_empty_fields as $key => $value){
    $values_array[] = &$non_empty_fields[$key];
}
Array
(
    [0] => female
    [1] => 1213423489ydasxas98y76
    [2] => 35
)