Ответы пользователя по тегу Массивы
  • Не могли бы вы ,уважаемые пользователи, помочь с заданием по php?

    @dtBlack
    Я как понимаю отсортировать одноуровневый массив у вас не вызывает трудностей?
    Так почему тогда не использовать рекурсивный вызов такой функции? Тем более в первом примере рекурсия используется.

    Простой пример с методом пузырька будет выглядеть так:
    function mySort($array){
        // перебираем массив
        for ($j = 0; $j < count($array) - 1; $j++){
            for ($i = 0; $i < count($array) - $j - 1; $i++){
                // если текущий элемент больше следующего
                if ($array[$i] > $array[$i + 1]){
                    // меняем местами элементы
                    $tmp_var = $array[$i + 1];
                    $array[$i + 1] = $array[$i];
                    $array[$i] = $tmp_var;
                }
            }
        }
        //Производим сортировку во вложенных массивах, по необходимости можно выполнить перед основной сортировкой
        foreach ($array as $key => &$item){
            if (is_array($item)){
                $item = mySort($item);
            }
        }
        return $array;
    }
    $arr = array(7,9,8,array(3,2,1),1,2,3,4,5,6);
    print_r(mySort($arr));


    Все кроме строк:
    foreach ($array as $key => &$item){
            if (is_array($item)){
                $item = mySort($item);
            }
        }

    является реализацией метода пузырька.

    PS: для реализации сортировки вложенных уровней достаточно слегка изменить пример с quicksort, но я думаю автор это сделает самостоятельно...
    Ответ написан
    Комментировать