验证中...
本周日,苏州开源盛宴,一起聊聊:Devops、K8s、数据库建模、SoLiD、.Net Core、微信开发、去中心化… 点击占座。
recur_array_diff.php
原始数据 复制代码
$array = [
'a' => [
'b' => [
'c' => 'd',
'e' => 'f'
]
],
'g' => [
'h' => 'i'
]
];
$deleteKey = 'a.b.c';
$keyArray = explode('.', $deleteKey);
//change a.b.c value
$result['change'] = recurArrayDiff($array, $keyArray, 'change a.b.c value');
//delete a.b.c
$result['delete'] = recurArrayDiff($array, $keyArray);
echo json_encode($result);
function recurArrayDiff($array, $keyArray, $replace = null)
{
$key0 = $keyArray[0];
if (is_array($array) && isset($keyArray[1])) {
unset($keyArray[0]);
$keyArray = array_values($keyArray);
if (!isset($array[$key0])) {
$array[$key0] = [];
}
$array[$key0] = recurArrayDiff($array[$key0], $keyArray, $replace);
} else {
if (is_null($replace)) {
unset($array[$key0]);
} else {
$array[$key0] = $replace;
}
}
return $array;
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助

14_float_left_people 14_float_left_close