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';
}
}
}
您应该测试元素 'distanceTimeFromNextPoint' 是否已经存在。
if (is_array($new_array[$i][$j]) && array_key_exists('distanceTimeFromNextPoint', $new_array[$i][$j]))
{
// you can update it
}
我只想更新我在 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';
}
}
}
您应该测试元素 'distanceTimeFromNextPoint' 是否已经存在。
if (is_array($new_array[$i][$j]) && array_key_exists('distanceTimeFromNextPoint', $new_array[$i][$j]))
{
// you can update it
}