检查多维数组中的重复项

时间:2015-05-20 13:34:02

标签: php arrays

我有一个数组,最后两个元素是相同的,我只想检查重复是否存在。

Array
(
    [0] => Array
        (
            [crop] => CI-000001
            [type] => PT-000001
        )

    [1] => Array
        (
            [crop] => CI-000001
            [type] => PT-000003
        )

    [2] => Array
        (
            [crop] => CI-000005
            [type] => PT-000014
        )

    [3] => Array
        (
            [crop] => CI-000005
            [type] => PT-000014
        )

) 

3 个答案:

答案 0 :(得分:0)

试试这个

<?php
$array = array(array('crop' => 'CI-000001','type' => 'PT-000001'), array('crop' => 'CI-000001','type' => 'PT-000003'),array('crop' => 'CI-000005','type' => 'PT-000014'),array('crop' => 'CI-000005','type' => 'PT-000014'));
$array = array_map("unserialize", array_unique(array_map("serialize", $array)));
echo "After Remove Duplicate:".'<pre>';
print_r( $array );
echo '</pre>';
?>

<强>输出: -

After Remove Duplicate:
Array
(
    [0] => Array
        (
            [crop] => CI-000001
            [type] => PT-000001
        )

    [1] => Array
        (
            [crop] => CI-000001
            [type] => PT-000003
        )

    [2] => Array
        (
            [crop] => CI-000005
            [type] => PT-000014
        )

)

Demo

答案 1 :(得分:0)

请尝试以下代码:

$hashes=array();
foreach ($myarray as $key=>$item) {
  $hash=sha1(var_export($item, true));
  if (isset($hashes($hash)) echo "$key is a duplicate of ".$hashes[$hash];
  else $hashes[$hash]=$key;
}

答案 2 :(得分:0)

您需要使用PHP的array_unique功能

$ara  = Array ( Array ( 'crop' => 'CI-000001', 'type' => 'PT-000001' ), Array
    (
        'crop' => 'CI-000001',
        'type' => 'PT-000003'
    ), Array
    (
        'crop' => 'CI-000005',
        'type' => 'PT-000014'
    ), Array
    (
        'crop' => 'CI-000005',
        'type' => 'PT-000014'
    )
);
echo "<pre>";
print_r(array_unique($ara,SORT_REGULAR));
echo "</pre>";

输出:

Array
(
    [0] => Array
        (
            [crop] => CI-000001
            [type] => PT-000001
        )

    [1] => Array
        (
            [crop] => CI-000001
            [type] => PT-000003
        )

    [2] => Array
        (
            [crop] => CI-000005
            [type] => PT-000014
        )

)