3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ 'one' => '...', 'two' => [ 'three' => '...', 'four' => '...', 'five' => [ 'six' => '...', 'seven' => '...', ], ], ]; $fields = [ 'one', 'two' => [ 'four', 'five' => [ 'seven', ], ], ]; var_dump(filterRecursive($data, $fields)); function filterRecursive(array $data, array $fields) { foreach ( $data as $key => &$value ) { if ( is_array($fields[$key]) ) { $value = filterRecursive($value, $fields[$key]); } elseif ( !in_array($key, $fields) ) { unset($value); } } return $data; }

preferences:
50.83 ms | 402 KiB | 5 Q