I use this for quasi-SQL orderby. Loosely based on smileaf. Any good for you nerds?
<?
function named_records_sort($named_recs, $order_by, $rev=false, $flags=0)
{$named_hash = array(); 
     foreach($named_recs as $key=>$fields) 
             $named_hash["$key"] = $fields[$order_by];
 
 if($reverse) arsort($named_hash,$flags=0) ;
    else asort($named_hash, $flags=0);
  
 $sorted_records = array(); 
    foreach($named_hash as $key=>$val) 
           $sorted_records["$key"]= $named_recs[$key];
  
return $sorted_records;} function show_sorted_records($named_recs, $order_by, $rev=false, $flags=0)
{$sorted_records=named_records_sort($named_recs, $order_by, $rev, $flags);
foreach($sorted_records as $name=>$fields) 
  {echo "<b>$name</b>   "; 
   foreach($fields as $field=>$val) 
          echo "$field = $val "; echo "<br>";}
} $girl_friends=array();
$girl_friends["Anna"]=
array("born"=>'1989-08-22',"cupsize"=>'B-',"IQ"=>105, "daddy"=>'rich');
$girl_friends["Zoe"]
=array("born"=>'1978-03-11',"cupsize"=>'C#',"IQ"=>130, "daddy"=>'poor');
$girl_friends["Lilly"]
=array("born"=>'1985-06-16',"cupsize"=>'DD',"IQ"=>90, "daddy"=>'nasty');
$order_by="cupsize"; echo "And the winners are: <br>";
show_sorted_records($girl_friends, $order_by, true);
?>