skeleton/sort_array_by_key.php
1.0 KB, 42 lines
<?php
function sort_array_by_key($mydata, $keyname)
{
for ($i=0; $i<count($mydata); $i++)
{
$swapped = false;
for ($j=$i+1; $j<count($mydata); $j++)
{
if ($mydata[$i][$keyname] > $mydata[$j][$keyname])
{
$swapped = true;
$temp = $mydata[$i];
$mydata[$i] = $mydata[$j];
$mydata[$j] = $temp;
}
}
if (!$swapped) break;
}
return($mydata);
}
function test_sort_array_by_key()
{
$passing = true;
$input = array( array('a' => 2, 'b' => 1), array('a' => 3, 'b' => 2), array('a' => 1, 'b' => 3) );
$expected = array( array('a' => 1, 'b' => 3), array('a' => 2, 'b' => 1), array('a' => 3, 'b' => 2) );
$output = sort_array_by_key($input, 'a');
if ($output != $expected)
{
debug("Array didn't sort properly.", __FILE__, __LINE__);
debug(" Input: " . var_export($input, true), __FILE__, __LINE__);
debug(" Expected: " . var_export($expected, true), __FILE__, __LINE__);
debug(" Output: " . var_export($output, true), __FILE__, __LINE__);
$passing = false;
}
return($passing);
}