Проблема с функцией пузырьковой сортировки на 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 шт):
У Вас получается, что вы передали массив, внутри функции что-то с ним сделали, но при этом вы не вернули новый массив.
Чтобы функция меняла входящий массив, то его надо передать по ссылке - добавьте & перед `$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);