日期:2014-05-17  浏览次数:20446 次

php usort排序问题
echo '<pre>';
function my_sort($a, $b)
  {
 
  if ($a == $b) return 0;
var_dump($a);var_dump($b);echo '<br />';
  return ($a > $b) ? -1 : 1;
  }

$arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn");

usort($arr, "my_sort");

print_r ($arr);
 
1.我不明白 $a和$b都是字母,所以return ($a > $b) ? -1 : 1; 这个之间的比较,我不明白字母之间如果比大小
2.$a $b他们各种代表着什么

------解决方案--------------------
比如冒泡排序
PHP code
for($i=0; $i<count($ar); $i++) {
  for(j=$i+1; $j<count($ar); $j++) {
    if($ar[$i] > $ar[$j]) {
      swap($ar[$i], $ar[$j]);
    }
  }
}

------解决方案--------------------
PHP code
$arr = array(
"Peter"=>array('a0'=>'a','a1'=>'3'),
"glenn"=>array('b0'=>'a','b1'=>'1'),
"Cleveland"=>array('c0'=>'a','c1'=>'2')
);

function my_sort($a, $b) {
  return strcasecmp(end($a), end($b));
}

uasort($arr, "my_sort");

print_r ($arr);