Проблема с функцией пузырьковой сортировки на php

Учу php. По мере знакомства с языком, тренировки ради пишу всякую ерунду. Решил попробовать сделать пузырьковую сортировку. Вне функции - проблем нет, сортировка выполняется как надо, но при попытке запихнуть ее в функцию происходит какая то лажа. На первом скрине сортировка без функции, на втором, как она отображается в браузере. Все нормально. На третьем скрине сортировка в функции, и она не работает. Вроде как, то же самое, может я какой мелочи не зачечаю? Параметр там не так передаю, ошибся в написании где то... Сортировка без функции Отображение сортировки без функции Функция сортировки. И она не работает Отображение функции

Код:

$array=array (9,8,7,6,5,4,3,2,1);    
function bouble_sort($ns_array)
    {
        for ($j=0; $j < count($ns_array)-1; $j++) 
        { 
            for ($i=0; $i <count($ns_array)-$j-1; $i++) 
            { 
                if ($ns_array[$i]>$ns_array[$i+1]) 
                {
                    $case=$ns_array[$i];
                    $ns_array[$i]=$ns_array[$i+1];
                    $ns_array[$i+1]=$case;          
                }           
            }   
        }   
    }

    bouble_sort($array);

Ответы (1 шт):

Автор решения: radar4ick

У Вас получается, что вы передали массив, внутри функции что-то с ним сделали, но при этом вы не вернули новый массив.

Чтобы функция меняла входящий массив, то его надо передать по ссылке - добавьте & перед `$ns_array' и все заработает.

$array=array (9,8,7,6,5,4,3,2,1);    
    function bouble_sort(&$ns_array)
        {
            for ($j=0; $j < count($ns_array)-1; $j++) 
            { 
                for ($i=0; $i <count($ns_array)-$j-1; $i++) 
                { 
                    if ($ns_array[$i]>$ns_array[$i+1]) 
                    {
                        $case=$ns_array[$i];
                        $ns_array[$i]=$ns_array[$i+1];
                        $ns_array[$i+1]=$case;          
                    }           
                }   
            }   
        }

    bouble_sort($array);
→ Ссылка