Есть массив PHP: $cars = [ ['name' => 'Такси 1', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 2', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 3', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 4', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 5', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ]; Нужен алгоритм на определение самого ближайшего и свободное такси до пассажира Положение пассажира так же рандомно Код (Text): $passenger = rand(0, 1000); Вывод по примеру: "Такси 1, стоит на 15 км, до пассажира 3 км (занят)" "Такси 2, стоит на 0 км, до пассажира 12 км (свободен) - едет это такси" "Такси 3, стоит на 300 км, до пассажира 288 км (свободен)" Нельзя создавать свою функцию, и нельзя изменять структуру самого массива $cars
Гребаная религия не позволяет. https://ru.stackoverflow.com/questions/1196054/Создать-скрипт-для-вывода-данных-из-массива Но тебя все равно училка раком поставит, т.к: А если Учитель - бери много вазелина, возможно прокатит.
PHP: <?php $cars = [ ['name' => 'Такси 1', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 2', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 3', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 4', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ['name' => 'Такси 5', 'position' => rand(0, 1000), 'isFree' => (bool) rand(0, 1)], ]; $k = 0; $pos = max(array_column($cars, 'position')); foreach($cars as $key => $row) { if($row['position'] <= $pos && $row['isFree'] == 1) { $pos = $row['position']; $k = $key; } } ptint_r($cars[$k]); ?>
Да, еще не помешает одна дополнительная переменная с двумя значениями. Скажем - 0 и 1. На случай, если вся колонка "занята" тогда на выводе будет что-то вроде Код (Text): if($var == 1) { print_r($cars[$k]); } else { echo 'свободных машин нет'; }