Есть массив:
$arr = [2,90,40];
Есть функция сортировки, которая «выталкивает» числа кратные 10 вверх списка:
function arrSort($a, $b)
{
if ($a % 10 == 0 && $b % 10 == 0) return $a <=> $b;
if ($a % 10 == 0 && $b % 10 != 0) return -1;
if ($a % 10 != 0 && $b % 10 == 0) return 1;
return ($a <=> $b);
}
Вызываем функцию:
uasort($arr, 'arrSort');
Получаем результат, который полностью решает нашу задачу:
Array
(
[2] => 40
[1] => 90
[0] => 2
)
После выполнения работы функция сортировки возвращает следующие значения:
1) 2 % 10 != 0 && 90 % 10 == 0 return 1
2) 2 <=> 90: return -1
3) 40 % 10 == 0 && 90 % 10 == 0 return -1
4) 40 <=> 90: return -1
Диагностику работы функции выполняю следующим образом:
function arrSort($a, $b)
{
if ($a % 10 == 0 && $b % 10 == 0) echo "$a % 10 == 0 && $b % 10 == 0 <b> return " . ($a <=> $b) . "</b> <br />";
if ($a % 10 == 0 && $b % 10 != 0) echo "$a % 10 == 0 && $b % 10 != 0 <b> return -1 </b> <br />";
if ($a % 10 != 0 && $b % 10 == 0) echo "$a % 10 != 0 && $b % 10 == 0 <b> return 1 </b> <br />";
echo "$a <=> $b: " . '<b> return ' . ($a <=> $b) . '</b>' . '<br />';
if ($a % 10 == 0 && $b % 10 == 0) return $a <=> $b;
if ($a % 10 == 0 && $b % 10 != 0) return -1;
if ($a % 10 != 0 && $b % 10 == 0) return 1;
return ($a <=> $b);
}
Вопрос: можете пошагово объяснить, как именно работает алгоритм, который помещает числа, кратные 10, вверх списка?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как сделать mutation чтобы был запрос в БД insert or update?
Вообщем есть такая проблема, я вывожу данную на страницу в 3 разных массивахВот так:
Создаю в папке с помощью цикла for документы с разным наполнениемЭто наполнение подтягивают из json
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме