gpt4 book ai didi

PHP - 从数组中删除相同的 sibling (叶)(从数组中删除相同的数组)

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:29 27 4
gpt4 key购买 nike

尝试从嵌套数组中删除相同的 sibling (叶子)/相同的数组。

例如

$data = [
'test' => [
'a' => [
'b' => 'something',
5 => [
'a' => [
1 => 'test1',
19 => 'test2',
6 => 'test3',
],
0 => 'test',
],
],
'b' => 1,
2 => [
3 => 'something',
5 => 'somethingelse',
],
4 => 'body'
],
'anothertest' => [
'b' => 1,
0 => [
'test' => 1,
2 => 'something',
3 => 'somethingelse',
],
1 => [
'test' => 1,
2 => 'something',
3 => 'somethingelse',
],
],
];

Array
(
[test] => Array
(
[a] => Array
(
[b] => something
[5] => Array
(
[a] => Array
(
[1] => test1
[19] => test2
[6] => test3
)

[0] => test
)

)

[b] => 1
[2] => Array
(
[3] => something
[5] => somethingelse
)

[4] => body
)

[anothertest] => Array
(
[b] => 1
[0] => Array
(
[test] => 1
[2] => something
[3] => somethingelse
)

[1] => Array
(
[test] => 1
[2] => something
[3] => somethingelse
)

)

)

$data['anothertest'][0] 和 $data['anothertest'][1] 是一样的,所以要去掉一个。

可以跳过带有字符串索引的数组。

增加了如何在 foreach 键值 block 中将一个数组与另一个数组进行比较。

我知道我可以使用 === 运算符比较同一个数组,但不知道如何在 foreach 循环中访问下一个数组。

这是我的代码,带有 PSUEDOCODE block ,我不知道该怎么做。

function cleansiblings($array)
{
foreach ($array as $key => $value) {
if (!is_string($key)) {
//PSEUDO CODE
//compare current $value to $value+1??
}
}

}

感谢任何帮助。

谢谢,

最佳答案

你可以像这样从多维数组中删除重复项

<?php

function get_unique($array){
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $key => $value){
if ( is_array($value) ){
$result[$key] = get_unique($value);
}
}
return $result;
}

echo "<pre/>";print_r(get_unique($data));

?>

输出:- https://eval.in/817099

关于PHP - 从数组中删除相同的 sibling (叶)(从数组中删除相同的数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44563194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com