PHP 删除重复的多维数组



这是我将用来过滤的输入数组。

[TESTING] => Array
    (
        [0] => Array
            (
                [a] => false
                [b] => WCP
                [c] => Title A
            )
        [1] => Array
            (
                [a] => false
                [b] => WCP
                [c] => Title B
            )
        [2] => Array
            (
                [a] => false
                [b] => WCP
                [c] => Title C
            )
    )

我想删除同时具有以下值的重复记录:键 [a] 和 [b] 具有相同的值。我不想使用 [c] 作为删除重复记录的条件。在这种情况下,输出应该是。

[TESTING] => Array
    (
    )

因为所有 3 个子数组都有键 [a] 的值和键 [b] 的值相同。我使用了array_unique()但此函数使用所有 3 个 [a]、[b] 和 [c] 作为删除我不想要的重复记录的条件。我没有得到我想要的输出。

需要帮助。有什么建议或想法吗?

如果您发现它有用,这是您问题的解决方案:-

<?php $a = array(
        0 => array(
                "a" => false,
                "b" => "WCP",
                "c" => "Title A"
            ),
        1 => array(
                "a" => false,
                "b" => "WCP",
                "c" => "Title B"
            ),
            2 => array(
                "a" => false,
                "b" => "WCP",
                "c" => "Title C"
            )
        );
global $checkArray;
$checkArray = $a;
function array_remove($a){
  global $checkArray;
  $arrLen = count($checkArray);
  unset($a['c']);
  foreach ($checkArray as $key => $value) {
    $diff = array_diff($value, $a);
    if (1 != count($diff) ||  !array_key_exists('c', $diff)){
      return true;
    }
  }
  return false;
}
print_r(array_filter($a, "array_remove"));

PHP 中的数组函数主要是为 2D 数组设计的。 您需要遍历多维数组,比较键值,然后将正确的结果分配给保持数组。 保持数组需要一个范围,该范围将允许通过多维数组的上层进行多次迭代。 这可以作为与array_filter一起使用的功能来完成;或者,通过独立重新分配完成。

试试这个,

function clearDuplicates($array)
{
   $new_array=array();
    for($i=0;$i<count($array);$i++)
    {
        $x=false;
        for($j=0;$j<count($array);$j++)
        if($j!=$i)
            if($array[$i]["a"]==$array[$j]["a"] && $array[$i]["b"]==$array[$j]["b"])
                $x=true;
        if(!$x)
            $new_array[]=$array[$i];
     }  
    return new_array;
}

相关内容

  • 没有找到相关文章

最新更新