Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php数组中的所有值与其他值进行比较_Php_Arrays - Fatal编程技术网

将php数组中的所有值与其他值进行比较

将php数组中的所有值与其他值进行比较,php,arrays,Php,Arrays,我有一个php数组 如何比较此数组的所有值并根据自定义逻辑筛选出值(可能是回调函数) 本质上,我想将每个数组值与数组中的每个其他值进行比较,并基于一些自定义逻辑,要么保留该值,要么将其从数组中删除 谢谢您可能需要手动操作: function your_callback($a, $b) { return $a != $b; } $array = array(/** Your array here... **/); $n = count($array); $filtered = arr

我有一个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;
使用您的_回调函数($a,$b)
{
返回$a!=$b;
}    
$array=array(/**此处的数组…**/);
$n=计数($array);
$filtered=array();
对于($i=0;$i<$n;$i++)
{
$ok=true;
对于($j=0;$j<$n;$j++)
{
如果($j!=$i&&!您的_回调($array[$i],$array[$j])
{
$ok=false;
打破
}
}
如果($ok)
数组推送($filtered,$array[$i]);
}
未设置($数组);
$array=$filtered;

例如,此示例将筛选数组的唯一值;更改您的\u回调定义以实现其他逻辑。

您可以调用数组\u映射,将回调作为第一个参数传递,并将数组作为第二个和第三个参数传递两次。在回调函数中,您可以循环“第二个”数组并返回元素(如果需要)。

如果希望按顺序将一个数组的值与另一个数组的值进行比较,那么我的代码非常简单:检查一下它的工作原理如下:

如果(数组-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;
}
if($\u POST){
$res=0;
$r=$\u POST['Radio1'];//数组-1
$anr=$_POST['answer'];//数组-2
$arr=计数($r);

对于($ac=0;$ac),我想到了,或者只是在数组上迭代。您有什么问题吗?您好。array_filter将回调应用于数组的每个元素。我正在寻找一些可以相互比较数组元素的东西。类似于usort()的东西,它提供了两个参数,您可以决定如何进行排序