3v4l.org

run code in 300+ PHP versions simultaneously
<?php $structure = [ "a", "b" => [ "b1", "b2" => [ "b21", "b22" ] ] ]; $data = ['A', 'B1', 'B21', 'B22']; $filled = 0; array_walk_recursive ($structure, function (&$val) { global $filled; global $data; $val = array( $val => $data[ $filled ] ); $filled++; }); print_r( $structure );
Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.31, 8.2.0 - 8.2.27, 8.3.0 - 8.3.19, 8.4.1 - 8.4.5
Array ( [0] => Array ( [a] => A ) [b] => Array ( [0] => Array ( [b1] => B1 ) [b2] => Array ( [0] => Array ( [b21] => B21 ) [1] => Array ( [b22] => B22 ) ) ) )

preferences:
162 ms | 409 KiB | 5 Q