我有一个PHP数组比较PHP数组的所有值与其他值
我如何比较这阵列的所有值,并筛选出基于自定义逻辑值(回调函数可能)。
从本质上讲,我想每个数组值与阵列中的所有其他值进行比较,并根据一些自定义逻辑,要么保留值或从阵列中删除它
感谢
我有一个PHP数组比较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;
本例将过滤数组的唯一值,例如:更改your_callback定义以实现其他逻辑。
您可以调用array_map,将您的回调作为第一个参数传递,并将您的数组作为第二个参数和第三个参数传递两次。在回调函数中,如果需要,可以遍历“second”数组并返回元素。
如果您正在寻找与流程的一个数组的值进行比较一个数组的值,那么我的代码是非常简单的:看看这个它的工作是这样的:
如果(阵列-1的第一个值等于阵列-2的第一值){$解析度= $ 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;
}
['array_filter'](http://php.net/manual/en/function.array-filter.php)想起来,或者只是遍历数组。有什么问题吗? – 2012-02-28 13:59:30
嗨。 array_filter将回调应用于数组的每个元素。我正在寻找比较数组元素的东西。像usort()这给你2个参数,你决定如何排序将发生 – Thomas 2012-02-28 14:05:53
然后做一个嵌套的'for'循环。 – 2012-02-28 14:07:07