Thursday, January 28, 2010

Sort Object by Member

function sort_object($data, $member, $direction)
{
//reset array;
sort($data);

for ($i = count($data) - 1; $i >= 0; $i--)
{
$swapped = false;

for ($j = 0; $j < $i; $j++)
{
if ($direction == 1)
{
if ( $data[$j]->{$member} < $data[$j + 1]->{$member} )
{

$tmp = $data[$j];
$data[$j] = $data[$j + 1];
$data[$j + 1] = $tmp;
$swapped = true;
}
}
else
{
if ( $data[$j]->{$member} > $data[$j + 1]->{$member} )
{
$tmp = $data[$j];
$data[$j] = $data[$j + 1];
$data[$j + 1] = $tmp;
$swapped = true;
}
}
}

if (!$swapped)
{
return $data;
}
}
}

No comments:

Post a Comment