<?php
function mergeAndBoolify($posted) {
$result = [];
foreach ($posted as $key1 => $value1) {
if ($key1 === 'JsonData') {
foreach (json_decode($value1, true) as $item) {
foreach ($item as $key2 => $value2) {
if (in_array($value2, ['true', 'false'])) {
$value2 = json_decode($value2);
}
$result[$key2] = $value2;
}
}
} else {
$result[$key1] = $value1;
}
}
return $result;
}
$_POST = [
'JsonData' => '[{"firstname":"false"},{"lastname":"true"},{"email":""}]',
'otherdata' => 'otherdata'
];
var_export(mergeAndBoolify($_POST));
- Output for 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array (
'firstname' => false,
'lastname' => true,
'email' => '',
'otherdata' => 'otherdata',
)
preferences:
138.47 ms | 407 KiB | 5 Q