- var_export: documentation ( source)
- array_diff_key: documentation ( source)
- is_iterable: documentation ( source)
<?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']));