3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array( array( 'name' => 'name', 'label' => 'Label' ), array( 'name' => 'name', 'label' => 'Label', 'sub_fields' => array( array( 'name' => 'my_desired_target', 'label' => 'Label' ) ) ) ); function change_recursively($arr, $previous){ foreach($arr as $key => &$val){ if(is_array($val)){ If($previous == NULL){ change_recursively($val, $key); }Else{ change_recursively($val, $previous . "," .$key); } }else{ if($key == 'name' && $val == 'my_desired_target'){ $path =explode(",", $previous); Var_dump($path); //How to add new key here? $arr['new_key'] = 'my new value'; } } } } change_recursively($arr, NULL); Var_dump($arr);
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array(3) { [0]=> string(1) "1" [1]=> string(10) "sub_fields" [2]=> string(1) "0" } array(2) { [0]=> array(2) { ["name"]=> string(4) "name" ["label"]=> string(5) "Label" } [1]=> array(3) { ["name"]=> string(4) "name" ["label"]=> string(5) "Label" ["sub_fields"]=> array(1) { [0]=> array(2) { ["name"]=> string(17) "my_desired_target" ["label"]=> string(5) "Label" } } } }

preferences:
103.84 ms | 1587 KiB | 5 Q