在多维数组中插入数组


insert array in multidimensional array

我有一个看起来像这样的数组。

Array
(
    [consultant] => Array
        (
            [John Smith] => Array
                (
                    [General] => Array
                        (
                            [PCA] => 0
                            [NCA] => 0
                        )
                )
        )
)

如何将数组附加到PCA以代替0

看起来像这样。

Array
(
    [consultant] => Array
        (
            [John Smith] => Array
                (
                    [General] => Array
                        (
                            [PCA] => Array
                                (
                                    [Motor Block] => 0
                                )
                            [NCA] => 0
                        )
                )
        )
)

http://sandbox.onlinephpfunctions.com/code/d9b20040517e557fe93fdf1208079a619dcc213b

只需从数组结构中找到正确的路径,并将数组分配给这个键:

$array['consultant']['John Smith']['General']['PCA'] = array('Motor Block'=>0);

但是,如果要将键PCA上的值0更改为此数组,无论该值有多深,请使用array_walk_recursive:

function change(&$v,$k){
    if($v == 0 && $k == 'PCA'){
        $v = array('Motor Block'=>0);
    }
}
array_walk_recursive($array,'change');

http://sandbox.onlinephpfunctions.com/code/3af10b9c88dcbc1af474a743a6c4a7cf5687f3ba