Сравните все значения в php-массиве с другими значениями

У меня есть php-массив

Как я могу сравнить все значения этого массива и отфильтровать значения на основе пользовательской логики (возможно, функция обратного вызова).

По сути, я хочу сравнить каждое значение массива со всеми другими значениями в массиве и на основе некоторой пользовательской логики либо сохранить значение, либо удалить его из массива

благодаря

Related of "Сравните все значения в 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; с 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, передать ваш обратный вызов в качестве первого аргумента и передать ваш массив дважды, как второй и третий аргументы. В функции обратного вызова вы выполняете цикл «второй» и возвращаете элемент, если хотите.

Если вы хотите последовательно сравнивать значения одного массива со значениями другого массива, тогда мой код очень прост: проверьте, будет ли он работать следующим образом:

if (1-е значение массива-1 равно 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($_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; }