我有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。请帮忙。谢谢!
答案 0 :(得分:1)
您可以使用RecursiveArrayIterator
和RecursiveIteratorIterator
展平您的数组。要检查是否存在重复项,可以检查展平数组的计数与展平数组的计数唯一值。
$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";
}