<?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