Location: PHPKode > scripts > Array Multi Sort class > array-multi-sort-class/example.php
<?
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);
}
?>
Return current item: Array Multi Sort class