3v4l.org

run code in 300+ PHP versions simultaneously
<?php $structure = [ "a", "b" => [ "b1", "b2" => [ "b21", "b22" ] ] ]; $data = ['A', 'B1', 'B21', 'B22']; function alterKey(&$arr, $data) { foreach ($arr as $key => $val) { if (!is_array($val)) { $data_key = array_search(strtoupper($val), $data); $arr[$val] = $data[$data_key]; unset($arr[$key]); } else { $arr[$key] = alterKey($val, $data); } } ksort($arr); return $arr; } alterKey($structure, $data); echo '<pre>', print_r($structure);

preferences:
24.56 ms | 402 KiB | 5 Q