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']));
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 'a1' => array ( 'a_name' => 'aaa', 'a_value' => 'aaaaa', ), 'b1' => array ( 'b_value' => 'bbbbbb', ), 'c1' => array ( 'c_name' => 'ccc', 'c_value' => 'cccccc', ), ) --- array ( 'a1' => array ( 'a_name' => 'aaa', 'a_value' => 'aaaaa', ), 'c1' => array ( 'c_name' => 'ccc', 'c_value' => 'cccccc', ), )

preferences:
125.74 ms | 408 KiB | 5 Q