3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a1 = array( 'a1' => array('a_name' => 'aaa', 'a_value' => 'aaaaa'), 'b1' => array('b_name' => 'bbb', 'b_value' => 'bbbbbb'), 'c1' => array('c_name' => 'ccc', 'c_value' => 'cccccc') ); function twoLevelFilter($master, $filter) { foreach ($filter as $key => $value) { if (isset($master[$key])) { if (is_iterable($value)) { $master[$key] = array_diff_key($master[$key], $value); } else { unset($master[$key]); } } } return $master; } var_export(twoLevelFilter($a1, ['b1' => ['b_name' => 'zzzzz']])); echo "\n---\n"; var_export(twoLevelFilter($a1, ['b1' => 'zzzzz']));

preferences:
24.76 ms | 406 KiB | 5 Q