<?
require("arr_multisort.class.php");
//Sample array - same format would be returned by mysql_fetch_assoc.
$sample_arr = array (
array (
"UserName" => "Usr1",
"Sex" => "male",
"Country" => "US",
"Children" => 3,
"BirthDate" => "1970-07-21"
),
array (
"UserName" => "TheUser",
"Sex" => "female",
"Country" => "Canada",
"Children" => 0,
"BirthDate" => "1975-11-05"
),
array (
"UserName" => "Blah",
"Sex" => "male",
"Country" => "US",
"Children" => 1,
"BirthDate" => "13 Feb 1964"
),
array (
"UserName" => "Makumba",
"Sex" => "female",
"Country" => "Mozambik",
"Children" => 12,
"BirthDate" => "1980-06-29"
),
);
//Instantiate the class
$srt = new arr_multisort();
//Set the array to be sorted
$srt->setArray($sample_arr);
?>
Starting array (unsorted):<br>
<?
$srt->sort();
dump_arr($sample_arr);
//Sort by sex descending and children ascending
$srt->addColumn("Sex",SRT_DESC);
$srt->addColumn("Children",SRT_ASC);
$sample_arr = $srt->sort();
?>
Array sorted by sex descending and children ascending<br>
<?
dump_arr($sample_arr);
//Sort by sex ascending and Birth date decending
$srt->resetColumns();
$srt->addColumn("Sex",SRT_ASC);
$srt->addColumn("BirthDate",SRT_DESC);
$sample_arr = $srt->sort();
?>
Array sorted by sex ascending and Birth date decending<br>
<?
dump_arr($sample_arr);
//Sort array using a custom compare function for BirthDate column
$srt->resetColumns();
$srt->addColumn("Sex",SRT_ASC);
$srt->addColumn("BirthDate",SRT_DESC,"myCompare");
$sample_arr = $srt->sort();
?>
Array sorted by sex ascending and Birth date decending using custom compare function for birth date<br>
<?
dump_arr($sample_arr);
?>
<?
//Functions
//Dump the array
function dump_arr(&$sample_arr){
?>
<table width="90%" border="1" cellspacing="0" cellpadding="0">
<tr>
<?
$Cols = array_keys($sample_arr[0]);
foreach($Cols as $col){
?>
<td align="center"><strong><?print($col);?></strong></td>
<?
}
?>
</tr>
<?
foreach($sample_arr as $row){
?>
<tr>
<?
foreach($row as $nm => $val){
?>
<td align="left"><?print($val)?></td>
<?
}
?>
</tr>
<?
}
?>
</table>
<?
}
function myCompare($a,$b){
return strnatcasecmp($a,$b);
}
?>
|