如我想让
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);
变成:
$arr = array(
"1fgfgfg",
"1ccccccccccccccccccc",
"2daaaaf",
"2dffffffffff",
"2ddddddddddddxyz",
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa"
);如何实现,在线付分子

解决方案 »

  1.   

    function cmp ($a, $b) {
        if ($a == $b) return 0;//不懂处二(return 0):我想让比较相同的逆向排序,该怎样表达?
      // 如果a=b,返回0, 有何问题?
        return ($a < $b) ? -1 : 1;//不懂处一:此处是何意思?  // 如果a<b,返回-1, 否则返回1 (已排除a=b,所以是a>b时返回1)
    }
      

  2.   

    1、0、-1在此排序中是什么意思?谁能帮我试下面的小例:

    $arr = array(
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa",
    "1ccccccccccccccccccc",
    "2ddddddddddddxyz",
    "2dffffffffff",
    "2daaaaf",
    "1fgfgfg"
    );
    变成:
    $arr = array(
    "1fgfgfg",
    "1ccccccccccccccccccc",
    "2daaaaf",
    "2dffffffffff",
    "2ddddddddddddxyz",
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa"
    );
    主要是参照数例前面的1、2、3排序。数相同(如都是2)的,则逆向排。
      

  3.   

    usort的回调函数cmd接受两个参数,这两个参数由usort内部提供
    回调函数可能的返回值是
    0 不做操作
    -1 将$a所在单元先前移动
    1 将$b所在单元先前移动也就是说当$a>$b时,返回1,就是做升序排列;返回-1,就是做降序排列究竟是哪些数组元素被传入了,你可以查看一下
    function cmp ($a, $b) {
      echo "a=$a b=$b<br>";
        if ($a == $b) return 0;
        return ($a < $b) ? -1 : 1;
    }
      

  4.   

    1、0、-1在此排序中是什么意思?-----------------------------It is a manual function close to strcmp()
      

  5.   

    急顶!还是这个例子,烦劳谁能帮我解通,我就能明白。不胜感激把
    $arr = array(
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa",
    "1ccccccccccccccccccc",
    "2ddddddddddddxyz",
    "2dffffffffff",
    "2daaaaf",
    "1fgfgfg"
    );
    变成:
    $arr = array(
    "1fgfgfg",
    "1ccccccccccccccccccc",
    "2daaaaf",
    "2dffffffffff",
    "2ddddddddddddxyz",
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa"
    );
    主要是参照数例前面的1、2、3排序。数相同的,则逆向排。
      

  6.   

    你就不能动动脑筋吗?
    <?php
    $arr = array(
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa",
    "1ccccccccccccccccccc",
    "2ddddddddddddxyz",
    "2dffffffffff",
    "2daaaaf",
    "1fgfgfg"
    );function cmp ($a, $b) {
        if ($a[0] == $b[0]) {
          if($a[1] == $b[1]) return 0;
          return $a[1] > $b[1] ? -1 : 1;
        }
        return ($a < $b) ? -1 : 1;
    }usort ($arr, "cmp");
    echo join("<br>", $arr);
    ?>
      

  7.   

    并非不动脑细胞,而是感觉这函数不把握。如<?php
    $arr = array(
    "2bbbbbbbbbbbbbbbb",
    "3aaaaaaaaaaaaaaaa",
    "1ccccccccccccccccccc",
    "2ddddddddddddxyz",
    "2dffffffffff",
    "2daaaaf",
    "1fgfgfg",
    "1asas"  //此处再增添一个单元的话,则得出
    );则得出:Array
    (
        [0] => 1fgfgfg
        [1] => 1ccccccccccccccccccc
        [2] => 1asas //此处又出现错误!原本希望它排在第一位
        [3] => 2daaaaf
        [4] => 2ddddddddddddxyz
        [5] => 2dffffffffff
        [6] => 2bbbbbbbbbbbbbbbb
        [7] => 3aaaaaaaaaaaaaaaa
    )仍未得出想要和结果
      

  8.   

    主要是参照数例前面的1、2、3排序。数相同的,则逆向排。
    ------------------
        [0] => 1fgfgfg
        [1] => 1ccccccccccccccccccc
        [2] => 1asas //此处又出现错误!原本希望它排在第一位---------------------------------------------------
    It suits your request, don't it ?
      

  9.   

    It suits your request, don't you think so ?