<?php
function user_sort($a,$b){
  
//smarts is all-important,so sort it first
  
if ($b =='smarts') {
    return 
1;
  } else if (
$a == 'smarts') {
    return -
1;
  }

  return (
$a ==$b)?:(($a <$b)?-:1);
}

$values = array('name'          => 'Buzz Lightyear',
                
'email_address' => 'buzz@starcommand.gal',
                
'age'           => 32,
                
'smarts'        => 'some');

if (
array_key_exists('submitted'$_POST)) {
  
$sort_type $_POST['sort_type'];
  if (
$sort_type == 'usort' || $sort_type == 'uksort' ||
      
$sort_type == 'uasort') {
    
$sort_type($values,'user_sort');
  } else {
    
$sort_type($values);
  }
  foreach(
$values as $k => $v) {
    echo 
"$k is $v <br />\n";
  }
}
?>

<form action="5-3-b.php" method = "post">
<input type="radio" name="sort_type" value="sort" checked="checked"/>Standard sort<br />
<input type="radio" name="sort_type" value="rsort" />Reverse sort<br />
<input type="radio" name="sort_type" value="usort" />User-defined sort<br />
<input type="radio" name="sort_type" value="ksort" />Key sort<br />
<input type="radio" name="sort_type" value="krsort" />Reverse key sort<br />
<input type="radio" name="sort_type" value="uksort" />User-defined key sort<br />
<input type="radio" name="sort_type" value="asort" />Value sort<br />
<input type="radio" name="sort_type" value="arsort" />Reverse value sort<br />
<input type="radio" name="sort_type" value="uasort" />User-defined value sort<br />
<input type="submit" value="Sort" name="submitted" /><br />
</form>