我有一个php数组
我如何比较这个数组的所有值,并根据自定义逻辑筛选出值(可能是回调函数)。
本质上,我想将每个数组值与数组中的其他值进行比较,并基于一些自定义逻辑,保留该值或将其从数组中删除
感谢
可能需要手动操作:
function your_callback($a, $b)
{
return $a != $b;
}
$array = array(/** Your array here... **/);
$n = count($array);
$filtered = array();
for($i = 0; $i < $n; $i++)
{
$ok = true;
for($j = 0; $j < $n; $j++)
{
if($j != $i && !your_callback($array[$i], $array[$j])
{
$ok = false;
break;
}
}
if($ok)
array_push($filtered, $array[$i]);
}
unset($array);
$array = $filtered;
例如,此示例将过滤数组的唯一值;更改callback定义以实现其他逻辑。
您可以调用array_map,将回调作为第一个参数传递,并将数组作为第二个和第三个参数传递两次。在回调函数中,您可以循环使用"second"数组,并根据需要返回元素。
如果你想按顺序将一个数组的值与另一个数组中的值进行比较,那么我的代码非常简单:检查一下,它会像这样工作:
如果(数组-1的第一个值等于数组-2的第一个数值){$res=$res+5}
if($_POST){
$res=0;
$r=$_POST['Radio1']; //array-1
$anr=$_POST['answer']; //array-2
$arr=count($r);
for($ac=0; $ac<$arr; $ac++){
if($r[$ac]==$anr[$ac]){
$res=$res+5;
}
}
echo $res;
}