<?php $array = array(5,1,2,3,4,6,7,8,9,10,11); $x = []; for($i=0;$i<count($array);$i++){ if($array[0] == $array[$i]){ $i++; } if($array[0]>$array[$i]){ $x[$i]=$array[$i]; } else{ $x[$i] = $array[0]; $array[0]=$array[$i]; $i++; print_r([$i]); } echo $x[$i]; } не выводит последний элемент, не знаю почему
1. оформляйте код в соотв тег PHP 2. полный бред в коде, начиная от изменения в цикле for счетчика $i внутри цикла заканчивая попыткой вывода элемента массива который сам является массивом через echo, и вот это еще: PHP: print_r([$i]) - что это ????? рукалицо... P.S. в логику происходящего (если она есть) даже не пытался вникнуть...
Задача что-бы в таком массиве (5,1,2,3,4,6,7,8), пятерка встала на свое место, используя только один цикл
а может ей нужно отсортировать без использования втсроиных функций, используя только один цикл. Скорее всего это какаето задачка по ДЗ
Ну если остальной массив гарантированно отсортирован по условию, то просто первый сравнить со вторым, переставить, потом второй с третьим, переставить, если надо и т.п. За один проход решается, даже без второго массива можно.
Что-то типа этого: PHP: <?php $mass_input = array(5,1,2,3,4,6,7,8,9); $kol = count($mass_input); $num = 0; for ($i=0; $i < $kol; $i++) { if($mass_input[$i] > $mass_input[$i+1]){ $num = $mass_input[$i+1];//1 $mass_input[$i+1] = $mass_input[$i];//1=5 $mass_input[$i] = $num; //5==1 } } print_r($mass_input); ?>
Ну ок)) PHP: <?php $mass_input = array(5,1,2,3,4,6,7,8,9); for ($i=0; $i < count($mass_input) - 1; $i++) { if($mass_input[$i] > $mass_input[$i+1]){ $num = $mass_input[$i+1];//1 $mass_input[$i+1] = $mass_input[$i];//1=5 $mass_input[$i] = $num; //5==1 } } print_r($mass_input); ?>