检查多维数组的副本(第3级)

时间:2018-05-21 02:59:05

标签: php arrays multidimensional-array

我有3级多维数组,我想检查重复项,只应该返回true或false。我尝试了array_unique(),但我认为这只适用于单级数组。我的数组看起来像这样:

array(
   0 => array(
               0=> array(
                          0=> "A"
                          1=> "B"
                          2=> "C"
                        )
               1=> array(
                          0=> "D"
                          1=> "E"
                          2=> "F"
                        )
               2=> array(
                          0=> "G"
                          1=> "H"
                          2=> "I"
                        )
               3=> array(
                          0=> "A"
                          1=> null
                          2=> null
                        )
             )

)

预期的结果应该是“A”已经重复并且应该返回true,否则应该是false。请帮忙。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用RecursiveArrayIteratorRecursiveIteratorIterator展平您的数组。要检查是否存在重复项,可以检查展平数组的计数与展平数组的计数唯一值。

$arr = //Your array
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
foreach($it as $v) $result[] = $v;

if ( count( $result ) !== count( array_unique( $result ) ) ) {
    echo "Duplicate"; //Return true
} else {
    echo "No Duplicate";
}