我知道如何使用array_diff_key( $x , array_unique( $x ) );
检测PHP数组中的重复值。
我的问题是我想检测PHP数组中的重复值,但忽略值或NULL值。例如:
$x = array (1,0,0,0,4,4,3);
$x = array (1,NULL,NULL,NULL,4,4,3);
我想在不改变数组结构的情况下检测4(数组长度仍然必须为7)。 这可能在PHP?怎么做?
答案 0 :(得分:1)
试试这个:
$y = array_filter($x,function($d){return $x!==null;});
$z = array_diff_key($y,array_unique($y));
$y
只有NOT null项。
$z
具有来自$x
的重复项的键,这些键不为空。
答案 1 :(得分:0)
我可以执行以下自定义函数detectArr
:
<?php
$x = array (1,0,0,0,4,4,3);
function detectArr($arr){
$output = array();
foreach ($arr as $i){
if ($i){
$output[] = $i;
}
else{
$output[] = NULL;
}
}
return $output;
}
echo "<pre>";
print_r(detectArr($x));
结帐本次演示:http://codepad.org/W8ocL6dj