检测重复项但忽略 PHP 数组中的值
detect duplicate but ignore a value on PHP array
我知道如何使用 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 中可能吗?怎么做?
试试这个:
$y = array_filter($x,function($d){return $x!==null;});
$z = array_diff_key($y,array_unique($y));
$y
只有项目不为空。
$z
具有来自 $x
的不为空的重复项的键。
我可以执行以下自定义函数 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));
我知道如何使用 array_diff_key( $x , array_unique( $x ) );
.
我的问题是我想检测 PHP 数组中的重复值,但忽略一个值或 NULL 值。例如:
$x = array (1,0,0,0,4,4,3);
$x = array (1,NULL,NULL,NULL,4,4,3);
我想在不改变数组结构的情况下检测4(数组长度必须还是7)。 这在 PHP 中可能吗?怎么做?
试试这个:
$y = array_filter($x,function($d){return $x!==null;});
$z = array_diff_key($y,array_unique($y));
$y
只有项目不为空。
$z
具有来自 $x
的不为空的重复项的键。
我可以执行以下自定义函数 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));