Php 在多维数组中查找键并更改值

Php 在多维数组中查找键并更改值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在编写一个PHP脚本,其中我得到了一个没有固定深度的多维数组。例如: $myArray = [ 'item01' => [ 'section01' => [ 'part01' ] ], 'item02' => [ 'section02' => [ 'part02' => [ 'something01' ] ] ], 'item03' =>

我正在编写一个PHP脚本,其中我得到了一个没有固定深度的多维数组。例如:

$myArray = [
  'item01' => [
      'section01' => [
        'part01'
      ]
    ],
  'item02' => [
    'section02' => [
      'part02' => [
        'something01'
      ]
    ]
  ],
  'item03' => [
    'section03'
  ]
]
我有一个字符串,其中包含应更改的值的路径。例如:

$myPath = 'item02/section02/part02'
我有了新的价值观:

$myValue = 'somethingElse'
我要做的是,按照$myPath中设置的路径遍历数组$myArray,将值更改为$myValue

预期输出,连同上述示例,如下所示:

$myArray = [
  'item01' => [
      'section01' => [
        'part01'
      ]
    ],
  'item02' => [
    'section02' => [
      'part02' => [
        'somethingElse'
      ]
    ]
  ],
  'item03' => [
    'section03'
  ]
]
我试过好几种方法,但总是被难倒。最后,它总是到达一个点,在这个点上,解决方案的核心是相同的。橡皮鸭也没用。我认识的其他程序员也没有找到解决方案

我希望这里的人至少能提供一些新的方法来研究这个问题

PS:以上所有内容都是伪代码,因为此问题似乎不是特定于语言的。

请尝试以下操作:

$myPath = 'item02/section02/part02';
$path = explode('/', $myPath);

$arr = &$myArray;
foreach($path as $key)
{
    $arr = &$arr[$key];
}

$arr = "somethingElse";

var_dump($myArray);
首先使用
分解
$myPath
字符串转换为一个
数组


这使用一个简单的循环
foreach
loop使用键在数组上循环,然后通过引用传递值来替换最深的值

不是复制品。这是一个固定深度的多维数组。该问题中提供的所有解决方案都无法解决此处解释的问题。请显示您的预期输出添加预期输出output@mega6382的确如此!我有点惊讶,因为我以前也试过这个,但那时候不起作用。我一定是在什么地方犯了个小错误。我会在结束后看看那是什么。谢谢你的帮助!谢谢这似乎在演示中起作用。我现在已经在我的代码中尝试过了,它似乎也很有效!奇怪的是,我以前也尝试过这个,但它一直覆盖整个数组。我很好奇有什么不同。这件事结束后我会调查的。