【问题标题】:check duplicacy in multidimensional array [duplicate]检查多维数组中的重复性[重复]
【发布时间】:2015-05-20 13:34:02
【问题描述】:

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

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
        )

) 

【问题讨论】:

  • 你可能不是第一个问这个问题的人,而且你没有表现出尝试的努力。

标签: php arrays


【解决方案1】:

需要使用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
        )

)

【讨论】:

    【解决方案2】:

    试试下面的代码:

    $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;
    }
    

    【讨论】:

      【解决方案3】:

      这样试试

      <?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

      【讨论】:

        猜你喜欢
        • 2011-06-24
        • 1970-01-01
        • 2018-12-28
        • 2019-03-05
        • 2016-03-03
        • 1970-01-01
        • 2021-09-25
        • 2011-11-03
        • 1970-01-01
        相关资源
        最近更新 更多