Sintaxa:
function qsort( &$rowdata, $sortBy, $first, $last )
{
$lo = $first;
$up = $last;
$i = $first + $last;
$bound = strval($rowdata[($i - $i%2)/2][$sortBy]);
while ( $lo <= $up)
{
while( ($lo <= $last - 1) && (strval($rowdata[$lo][$sortBy]) < $bound))
{
$lo++;
}
while (($up >= 1) && ($bound < strval($rowdata[$up][$sortBy])) )
{
$up--;
}
if ($lo < $up)
{
$tmp = $rowdata[$up];
$rowdata[$up] = $rowdata[$lo];
$rowdata[$lo] = $tmp;
$up--;
$lo++;
}
else
{
$lo++;
}
}
if ($first < $up) qsort($rowdata, $sortBy, $first, $up);
if ($up + 1 < $last) qsort($rowdata, $sortBy, $up + 1, $last);
}
|