我在将多维数组缩减为普通数组时遇到了一些问题。
我有一个这样的输入数组:
Array
(
[0] => Array (
[0] => 17
[1] => 99
)
[1] => Array (
[0] => 17
[1] => 121
)
[2] => Array (
[0] => 99
[1] => 77
)
[3] => Array (
[0] => 45
[1] => 51
)
[4] => Array (
[0] => 45
[1] => 131
)
所以我有一个多维数组,其中的值有一些重叠(例如 17,99 和 17,121)现在我想要这样的输出:
Array
(
[0] => Array (
[0] => 17
[1] => 99
[2] => 121
[3] => 77
)
[2] => Array (
[0] => 45
[1] => 51
[3] => 131
)
我想保存,这样我的数据库中哪些文章是相同的。输出数组应该仍然是一个多维数组,但是第二层的每个数字在数组中应该是唯一的。
我正在尝试解决这个问题一个多星期,但我没有让它工作。我知道这应该很容易......但无论如何 - 我不明白:D
这是我到目前为止得到的:
$parity_sorted = array();
foreach($arr as $key => $a){
if(count($parity_sorted) > 0){
foreach($parity_sorted as $key2 => $arr_new){
if(in_array($a[0], $arr_new) || in_array($a[1], $arr_new)){
if(!in_array($a[0], $arr_new)){array_push($parity_sorted[$key2], $a[0]);}
if(!in_array($a[1], $arr_new)){array_push($parity_sorted[$key2], $a[1]);}
} else {
array_push($parity_sorted, array($a[0],$a[1]));
}
}
} else {
array_push($parity_sorted, array($a[0],$a[1]));
}
}
您可能已经解决了这样的问题还是有更简单的方法?也许我只是觉得太复杂了(这不是我第一次尝试,但这段代码是最后一次尝试)
任何帮助,将不胜感激。非常感谢