За последние 24 часа нас посетил 16531 программист и 1553 робота. Сейчас ищут 2028 программистов ...

Помогите пожалуйста с массивом

Тема в разделе "PHP для новичков", создана пользователем Elena132, 16 мар 2018.

  1. Elena132

    Elena132 Новичок

    С нами с:
    27 окт 2017
    Сообщения:
    5
    Симпатии:
    0
    <?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];
    }
    не выводит последний элемент, не знаю почему
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    751
    Адрес:
    Татарстан
    1. оформляйте код в соотв тег PHP
    2. полный бред в коде, начиная от изменения в цикле for счетчика $i внутри цикла заканчивая попыткой вывода элемента массива который сам является массивом через echo, и вот это еще:
    PHP:
    1. print_r([$i])
    - что это ????? рукалицо...
    P.S. в логику происходящего (если она есть) даже не пытался вникнуть...
     
    Kylun-Serg нравится это.
  3. Elena132

    Elena132 Новичок

    С нами с:
    27 окт 2017
    Сообщения:
    5
    Симпатии:
    0
    я новичок, лучше не критиковать, а помочь, пожалуйста. print_r убрал
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Задача то какая?

    Точно Лена?
     
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    751
    Адрес:
    Татарстан
    неужели Машук???
     
  6. Elena132

    Elena132 Новичок

    С нами с:
    27 окт 2017
    Сообщения:
    5
    Симпатии:
    0
    Задача что-бы в таком массиве (5,1,2,3,4,6,7,8), пятерка встала на свое место, используя только один цикл
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    sort([5,1,2,3,4,6,7,8], SORT_NUMERIC);

    не благодари
     
  8. Kylun-Serg

    Kylun-Serg Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    16
    Симпатии:
    1
    PHP:
    1. <?php
    2.     $arr = [5,1,2,3,4,6,7,8,9,10,11];
    3.     sort($arr);
    4.     var_dump($arr);
    5. ?>
     
  9. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    а может ей нужно отсортировать без использования втсроиных функций, используя только один цикл. Скорее всего это какаето задачка по ДЗ
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Как же его (её) хороняку понять, ежели он (она) ничего не говорит? (с) )))
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Тайка походу
     
    Dron-Boy нравится это.
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    Ну если остальной массив гарантированно отсортирован по условию, то просто первый сравнить со вторым, переставить, потом второй с третьим, переставить, если надо и т.п. За один проход решается, даже без второго массива можно.
     
  13. Kylun-Serg

    Kylun-Serg Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    16
    Симпатии:
    1
    Что-то типа этого:
    PHP:
    1. <?php  
    2. $mass_input = array(5,1,2,3,4,6,7,8,9);
    3. $kol = count($mass_input);
    4. $num = 0;
    5. for ($i=0; $i < $kol; $i++) {
    6.     if($mass_input[$i] > $mass_input[$i+1]){
    7.         $num = $mass_input[$i+1];//1
    8.         $mass_input[$i+1] = $mass_input[$i];//1=5
    9.         $mass_input[$i] = $num; //5==1
    10.     }
    11. }
    12. print_r($mass_input);
    13. ?>
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    @Kylun-Serg, только $i < $kol - 1.
    А я хотел, чтоб ТС сам(а) догадался(лась)
     
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.798
    Симпатии:
    1.331
    Адрес:
    Лень
    там овощ а не девушка
     
  16. Kylun-Serg

    Kylun-Serg Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    16
    Симпатии:
    1
    Ну ок))
    PHP:
    1. <?php  
    2. $mass_input = array(5,1,2,3,4,6,7,8,9);
    3.  
    4. for ($i=0; $i < count($mass_input) - 1; $i++) {
    5.     if($mass_input[$i] > $mass_input[$i+1]){
    6.         $num = $mass_input[$i+1];//1
    7.         $mass_input[$i+1] = $mass_input[$i];//1=5
    8.         $mass_input[$i] = $num; //5==1
    9.     }
    10. }
    11. print_r($mass_input);
    12. ?>