PHP - 删除数组中相同的同胞(叶)(从数组中删除相同的数组)
试图从嵌套数组中删除相同的同胞(叶子)/相同的数组。PHP - 删除数组中相同的同胞(叶)(从数组中删除相同的数组)
e.g
$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
)
)
)
$数据[ 'anothertest'] [0]和$数据[ 'anothertest'] [1]是相同的,所以一个已被删除。
带字符串索引的数组可以跳过。
如何在foreach键值块中比较一个数组与另一个数组。
我知道我可以将相同的数组与===
运算符进行比较,但不知道如何在foreach循环中访问下一个运算符。
这是我的代码,用PSUEDOCODE块,我不知道该怎么做。
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
谢谢!!!!作品! –
@android_dev很高兴帮助你:) :) –
要回答只是你的问题的最后一部分:您可以访问原来的$ array在使用$ key的foreach循环中:
function cleansiblings($array)
{
foreach ($array as $key => $value) {
if (!is_string($key)) {
if (isset($array[$key+1])) {
// Compare $array[$key] (or $value, it is the same) with $array[$key+1]
// To remove item from array, just unset it: unset($array[$key]).
// Note that you can alter iterated array in PHP,
// but not in some other languages.
}
}
}
}
您是否尝试过array_uniq ue功能? (http://php.net/manual/en/function.array-unique.php) – janfitz