检测重复但忽略PHP数组上的值
我知道如何使用检测重复但忽略PHP数组上的值,php,arrays,Php,Arrays,我知道如何使用array_diff_key($x,array_unique($x))检测PHP数组中的重复值 我的问题是我想检测PHP数组中的重复值,但忽略一个值或空值。例如: $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!
array_diff_key($x,array_unique($x))检测PHP数组中的重复值代码>
我的问题是我想检测PHP数组中的重复值,但忽略一个值或空值。例如:
$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
的重复项的键,这些键不为空。我可以执行以下自定义功能检测器
:
<?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));
这在PHP中可能吗?
是的,在php1中可能。阅读本网站的规则2。编写代码3。发布清除问题您可以使用array\u intersect\u assoc
使用array\u filter
在检查重复项之前删除要忽略的值。这些函数都不会改变原来的数组结构,它们会返回新的数组。请详细解释