我有这个数组,我想从中删除重复的键。
Array
(
[8] => Array
(
[7] => one name
[27] => Array
(
[27] => Array
(
[31] => other name
)
)
[10] => Array
(
[10] => Array
(
[24] => Array
(
[24] => Array
(
[30] => some name
)
)
)
)
)
)
我想删除前27个,前10个和前24个,我该怎么办?
结果应该是这样的
只需删除重复的密钥
即可Array
(
[8] => Array
(
[7] => one name
[27] => Array
(
[31] => other name
)
[10] => Array
(
[24] => Array
(
[30] => some name
)
)
)
)
我通过构建循环函数来获得此结构
答案 0 :(得分:0)
我并不完全明白这个数组是什么结果,这个输出都不是用来做什么的。但无论如何,这是一个简单的递归算法,可以满足您的需求。顺便说一下,PHP中没有特定的东西。
function remove_duplicates(&$array){
foreach($array as $key => &$val){
if(is_array($val)){
if(count($val) == 1 && array_keys($val)[0] == $key){
$val = $val[$key];
}
remove_duplicates($val);
}
}
}
请参阅测试运行here