Can';不要更改php列表中的值

Can';不要更改php列表中的值,php,arrays,list,Php,Arrays,List,我有以下php循环,它接受一个包含一组数组的数组。我使用这段代码将每个数组转换为一个列表,以便更好地操作元素 这是我的密码 while ($i<sizeof($my_array)){ while(list($key,$val) = each($my_array[$i])){ $j = $i+1; if ($key == "fruit"){ $val = "ananas".$j; echo $val;

我有以下php循环,它接受一个包含一组数组的数组。我使用这段代码将每个数组转换为一个列表,以便更好地操作元素

这是我的密码

while ($i<sizeof($my_array)){
    while(list($key,$val) = each($my_array[$i])){
      $j = $i+1;
        if ($key == "fruit"){
          $val = "ananas".$j;
          echo $val;
        }
     } 
 $i++;
 }

while($i使用
foreach
参考:

$i = 0;
foreach ( $my_array as $key => &$val ) {
    ++$i;
    if ($key == "fruit"){
        $val = "ananas" . $i;
        echo $val;
    }
}

使用foreach的

$i = 0;
foreach ( $my_array as $key => &$val ) {
    ++$i;
    if ($key == "fruit"){
        $val = "ananas" . $i;
        echo $val;
    }
}

$val是$my_数组[$i]中包含的数据的副本,而不是实际数据。要更改数组中的数据,请执行以下操作:

while ($i<sizeof($my_array)){ 
    while(list($key,$val) = each($my_array[$i])){ 
      $j = $i+1; 
        if ($key == "fruit"){ 
          $my_array[$i][$key] = "ananas"; 
          echo $my_array[$i][$key]; 
        } 
     }  
 $i++; 
 } 

而($i$val是$my_数组[$i]中包含的数据的副本,而不是实际数据。要更改数组中的数据,请执行以下操作:

while ($i<sizeof($my_array)){ 
    while(list($key,$val) = each($my_array[$i])){ 
      $j = $i+1; 
        if ($key == "fruit"){ 
          $my_array[$i][$key] = "ananas"; 
          echo $my_array[$i][$key]; 
        } 
     }  
 $i++; 
 } 
while($i
each()
不会将数据作为引用传递,而不会对循环进行太多修改:

    if ($key == "fruit"){
      $val = "ananas";
      echo $val;
      $my_array[$i][$key] = $val;
    }
当然,有更好的方法可以做到这一点。但是您想要的答案不会改变循环结构。

each()
不会将数据作为引用传递,而不会对循环进行太多修改:

    if ($key == "fruit"){
      $val = "ananas";
      echo $val;
      $my_array[$i][$key] = $val;
    }
当然,有更好的方法可以做到这一点,但是你想要的答案是不会改变循环结构的