/**
* Remove key from multidimensional array
*
* @param array $request
* @param array $keys
*
* @return array
*/
function request_filter(array $request, array $keys) {
array_walk($request, function (&$value, $key) use ($keys) {
if(is_array($value)) {
$value = request_filter($value, $keys);
}
});
return array_filter ($request, function ($value, $key) use ($keys) {
return ! in_array($key, $keys);
}, ARRAY_FILTER_USE_BOTH);
}
$data = [
'a' => 'A',
'password' => 123,
'data' => [
'b' => 'B',
'data2' => [
'c' => 'C',
'password' => 545,
],
'password' => 321,
]
];
print_r(request_filter($data, ['password']));
Output will be:
Array
(
[a] => A
[data] => Array
(
[b] => B
[data2] => Array
(
[c] => C
)
)
)