Bubble sort algorithm is a basic algorithm for sorting sets of 
numbers. It is the one you will probably be confronted with at college. 
There are probably better sorting algorithms but since this is the one 
you will most likely encounter, I have decided to write a simple 
implementation of it in PHP.
The idea is simple. You iterate over an array (from the first to the 
last but one number) using a while loop until it’s sorted. In every 
iteration you compare the current and the next number. If the current 
number is greater than the next number, switch them. That’s in a case 
you want to sort the array in ascending order. For descending order it 
is very similar. Just change < to >.
Source Code:
<?php
// Ascending order function
function bubbleSortAsc(array $arr)
{
$sorted = FALSE;
while ($sorted === FALSE)
{
$sorted = TRUE;
for ($i = 0; $i < count($arr)-1; ++$i)
{
$current = $arr[$i];
$next = $arr[$i+1];
if ($next < $current)
{
$arr[$i] = $next;
$arr[$i+1] = $current;
$sorted = FALSE;
}
}
}
return $arr;
}
    
// Descending order function
function bubbleSortDesc(array $arr)
{
$sorted = FALSE;
while ($sorted === FALSE)
{
$sorted = TRUE;
for ($i = 0; $i < count($arr)-1; ++$i)
{
$current = $arr[$i];
$next = $arr[$i+1];
if ($next > $current)
{
$arr[$i] = $next;
$arr[$i+1] = $current;
$sorted = FALSE;
}
}
}
return $arr;
}
    
    
// Call any function
$arr_val = array(50, 1, 45, 10, 40, 20, 35, 30, 3, 2);
$sortedArr = bubbleSortAsc($arr_val);
print_r($sortedArr);
?>
// Ascending order function
function bubbleSortAsc(array $arr)
{
$sorted = FALSE;
while ($sorted === FALSE)
{
$sorted = TRUE;
for ($i = 0; $i < count($arr)-1; ++$i)
{
$current = $arr[$i];
$next = $arr[$i+1];
if ($next < $current)
{
$arr[$i] = $next;
$arr[$i+1] = $current;
$sorted = FALSE;
}
}
}
return $arr;
}
// Descending order function
function bubbleSortDesc(array $arr)
{
$sorted = FALSE;
while ($sorted === FALSE)
{
$sorted = TRUE;
for ($i = 0; $i < count($arr)-1; ++$i)
{
$current = $arr[$i];
$next = $arr[$i+1];
if ($next > $current)
{
$arr[$i] = $next;
$arr[$i+1] = $current;
$sorted = FALSE;
}
}
}
return $arr;
}
// Call any function
$arr_val = array(50, 1, 45, 10, 40, 20, 35, 30, 3, 2);
$sortedArr = bubbleSortAsc($arr_val);
print_r($sortedArr);
?>


