PHP 更新关联数组

PHP update associative array

我只想更新我在 PHP 中创建的关联数组中的 ["distanceTimeFromNextPoint"] 元素。

我正在尝试更新以下数组结构:

Array 
( 
  [0] => Array 
  ( 
    [Total time] => 0:00 
    [0] => Array 
    ( 
      [place] => Spanish steps  
      [distanceTimeFromNextPoint] =>  
    ) 
    [1] => Array 
    ( 
      [place] => Piazza Venezia 
      [distanceTimeFromNextPoint] =>  
    ) 
  ) 
  [1] => Array 
  ( 
    [Total time] => x0:00 
    [0] => Array  
    ( 
      [place] => Piazza Venezia 
      [distanceTimeFromNextPoint] => 
    ) 
    [1] => Array 
    ( 
      [place] => Spanish steps 
      [distanceTimeFromNextPoint] => 
    ) 
  ) 
)

但是当我 运行 这个循环时 ["Total time"] 元素也会更新! 关于我的循环有什么问题以及如何更改它有什么想法吗?

这是我的代码(上面的数组定义为$new_array):

foreach($new_array as $i=>$element)
{
    foreach($element as $j=>$sub_element)
    {         
         $new_array[$i][$j]['distanceTimeFromNextPoint']="x";
    }
}

提前致谢。

如果我的结构正确,只需添加一个条件,其中您要排除该键并检查该元素是否具有所需的子键,然后进行修改:

foreach($new_array as $i => $element) {
    foreach($element as $j => $sub_element) {
        if($j !== 'Total time' && array_key_exists('distanceTimeFromNextPoint', $sub_element)) {
            $new_array[$i][$j]['distanceTimeFromNextPoint'] = 'x';
        }
    }
}

Sample Output

您应该测试元素 'distanceTimeFromNextPoint' 是否已经存在。

if (is_array($new_array[$i][$j]) && array_key_exists('distanceTimeFromNextPoint', $new_array[$i][$j])) 
{
    // you can update it
}