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他们各种代表着什么

解决方案 »

  1.   

    这个排序目的就是将字符串从大到小排序。PHP里字符串的比较直接用不等号就可以了,如果要忽略大小写还是需要用到strcasecmp,C语言里是这么拼的,自己查查。
      

  2.   

    $a $b是你传的2个变量,你代码不全,具体是什么不知道, 这个排序目的就是将字符串从大到小排序。
    PHP里字符串的比较直接用不等号就可以了,如果要忽略大小写还是需要用到strcasecmp,C语言里是这么拼的,自己查查
      

  3.   

    1、字符是按其ascii码值比较大小的,字符串比较大小时是按从左到右逐个字符依次进行的
    2、你多少应该学了一点算法,现在高中的计算机课里不也有排序的冒泡算法吗?
    无论如何,既然是排序,就有个比较大小的问题,那个$a $b就是算法需要比较大小的两个值
      

  4.   

    return (($a > $b) ? -1 : 1); 
      

  5.   

    比如冒泡排序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]);
        }
      }
    }其中 if($ar[$i] > $ar[$j]) 不就是要比较大小吗?
    那个 $a $b 就是这里的 $ar[$i] $ar[$j]排序有很多种方式,冒泡排序只是最基本的一种。
    至于 usort 内部采用什么排序方法,这就不需要深究了。总之,他每当需要比较大小时,就调用你给他的函数
      

  6.   

    举个例子:
    $arr = array("Peter"=>array('a0'=>'a','a1'=>'3'),"glenn"=>array('b0'=>'a','b1'=>'1'),"Cleveland"=>array('c0'=>'a','c1'=>'2'));
      这样一个数组 我希望能够按照里面那个3, 1, 2 进行从小到大的进行重新排序,能够办到吗?
      

  7.   

    $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);Array
    (
        [glenn] => Array
            (
                [b0] => a
                [b1] => 1
            )    [Cleveland] => Array
            (
                [c0] => a
                [c1] => 2
            )    [Peter] => Array
            (
                [a0] => a
                [a1] => 3
            ))