<?php
function array_flatten($array, $result = []) {
if(!is_array($array)) {
return false;
}
foreach($array as $key => $value) {
if(is_array($value)) {
$result = array_flatten($value, $result);
} else {
$result[$key] = $value;
}
}
return $result;
}
$allowedKeys = [
'firstname',
'middlename',
'street',
'lastname',
'housenumber',
];
$userdata = [
'firstname' => 'first',
'middlename' => 'middle',
'lastname' => 'last',
'address' => [
'street' => 'streeeeeet',
'housenumber' => '10'
]
];
$addresses = array_flatten($userdata);
foreach($userdata as $key => $value) {
if(!in_array($key, $allowedKeys)) {
unset($userdata[$key]);
}
}
var_dump($addresses);
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- array(5) {
["firstname"]=>
string(5) "first"
["middlename"]=>
string(6) "middle"
["lastname"]=>
string(4) "last"
["street"]=>
string(10) "streeeeeet"
["housenumber"]=>
string(2) "10"
}
preferences:
227.32 ms | 404 KiB | 287 Q