3v4l.org

run code in 300+ PHP versions simultaneously
<?php $profile = [ 'person' => [ 'name' => 'Jim DeLois', 'address' => [ 'street' => '400 Central Park West', 'citiy' => 'New York', 'state' => 'NY', 'zip' => 10025 ], 'pets' => [] ] ]; $cast_recursive = function ( $element ) use ( &$cast_recursive ) { return is_array( $element ) ? (object) array_map( $cast_recursive, $element ) : $element; }; // map_recursive var_dump( $cast_recursive( $profile ) );
Output for 5.4.1 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 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.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
object(stdClass)#5 (1) { ["person"]=> object(stdClass)#4 (3) { ["name"]=> string(10) "Jim DeLois" ["address"]=> object(stdClass)#2 (4) { ["street"]=> string(21) "400 Central Park West" ["citiy"]=> string(8) "New York" ["state"]=> string(2) "NY" ["zip"]=> int(10025) } ["pets"]=> object(stdClass)#3 (0) { } } }

preferences:
202.25 ms | 405 KiB | 251 Q