Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP删除多维数组中的重复数组_Php_Arrays_Multidimensional Array_Duplicates - Fatal编程技术网

PHP删除多维数组中的重复数组

PHP删除多维数组中的重复数组,php,arrays,multidimensional-array,duplicates,Php,Arrays,Multidimensional Array,Duplicates,我需要检查2D数组($arr)是否有任何重复项(顺序无关紧要),并将它们放入一个干净的数组中 例如: $arr = array ( array (-9,1,8 ), array (-9,2,7 ), array (-9,3,6 ), array (-9,4,5 ), array (-9,5,4 ), array (-9,6,3 ), array (-9,7,2 ), array (-9,8,1 ) ) 最终需要: $clean

我需要检查2D数组($arr)是否有任何重复项(顺序无关紧要),并将它们放入一个干净的数组中

例如:

$arr = array ( 
    array (-9,1,8 ), 
    array (-9,2,7 ),
    array (-9,3,6 ),
    array (-9,4,5 ),
    array (-9,5,4 ),
    array (-9,6,3 ),
    array (-9,7,2 ),
    array (-9,8,1 )
)
最终需要:

$cleanArr = array ( 
    array (-9,1,8 ), 
    array (-9,2,7 ),
    array (-9,3,6 ),
    array (-9,4,5 )
)


是否有一个PHP函数用于此操作,或者我需要执行某种循环来清除重复项?

没有函数直接执行此操作,但是可以使用函数的组合。您可以首先将数组的所有子批次按升序排序,然后对每个子批次进行序列化,利用
array\u unique
,然后再次取消序列化以再次获得多维:

foreach($arr as &$a){ sort($a); }
$arr = array_map('unserialize', array_unique(array_map('serialize', $arr)));
print_r($arr);
试试这个:

    <?php

    $arr = array ( 
    array (-9,1,8 ), 
    array (-9,2,7 ),
    array (-9,3,6 ),
    array (-9,4,5 ),
    array (-9,5,4 ),
    array (-9,6,3 ),
    array (-9,7,2 ),
    array (-9,8,1 )
    );

    $arr = array_map(function($n) {return explode(',', $n);}, (array_unique(array_map(function($n) {sort($n); return implode(',', $n);}, $arr))));

echo var_export($arr, true);

?>

是的,这很有效。这太糟糕了,没有一个函数可以处理这个问题为了伟大的工作@冰酒当然我很高兴这有帮助
    <?php

    $arr = array ( 
    array (-9,1,8 ), 
    array (-9,2,7 ),
    array (-9,3,6 ),
    array (-9,4,5 ),
    array (-9,5,4 ),
    array (-9,6,3 ),
    array (-9,7,2 ),
    array (-9,8,1 )
    );

    $arr = array_map(function($n) {return explode(',', $n);}, (array_unique(array_map(function($n) {sort($n); return implode(',', $n);}, $arr))));

echo var_export($arr, true);

?>
array (
  0 => 
  array (
    0 => '-9',
    1 => '1',
    2 => '8',
  ),
  1 => 
  array (
    0 => '-9',
    1 => '2',
    2 => '7',
  ),
  2 => 
  array (
    0 => '-9',
    1 => '3',
    2 => '6',
  ),
  3 => 
  array (
    0 => '-9',
    1 => '4',
    2 => '5',
  ),
)