$arr = array(40, 39, "2", 11);
array_multisort($arr,SORT_NUMERIC, SORT_DESC);
print_r($arr);就是对数组按照数字降序排列,结果为
Array
(
    [0] => 40
    [1] => 2
    [2] => 39
    [3] => 11
)我想知道这个字符串"2"是怎么参加排序的,为什么是在这个位置?

解决方案 »

  1.   

    Array
    (
        [0] => 40
        [1] => 39
        [2] => 11
        [3] => 2
    )你的程序我输出这样的,我想知道你是咋输出来那样的
      

  2.   

    我的结果也是这个哦,环境php5.3.3+lighttpdArray ( [0] => 40 [1] => 39 [2] => 11 [3] => 2 )
      

  3.   


    下面这部分是源程序
    <?php
    $arr1 = array("20", 40, 60, "a");
    $arr2 = array(5, 9, "2", 12);
    array_multisort($arr1, $arr2);
    print_r($arr1);
    print_r($arr2);$arr3 = array(array("10", 11, 100, "a"), 
    array(40, 39, "2", 11));
    array_multisort($arr3[0], SORT_ASC, SORT_STRING,
    $arr3[1], SORT_NUMERIC, SORT_DESC);
    print_r($arr3);$arr4 = array(array("key1"=>"10", 11, "key10"=>100, 101, "a"),
    array("key20"=>15, 33, "key30"=>"2", 23, 55));
    array_multisort($arr4[0], SORT_DESC, SORT_STRING,
                    $arr4[1], SORT_NUMERIC, SORT_ASC);
    print_r($arr4);?>
      

  4.   

    Array
    (
        [0] => Array
            (
                [0] => 10 => 原来0
                [1] => 100 => 原来2
                [2] => 11 => 原来1
                [3] => a => 原来3
            )
    ===========>1元素根据0元素来排序
        [1] => Array
            (
                [0] => 40 => 原来0
                [1] => 2 => 原来2
                [2] => 39 => 原来1
                [3] => 11 => 原来3
            ))
      

  5.   

    array_multisort 有如 sql 的 select 指令中的子句 order 
    他对参与排序的数组按内部指针关联,排在前面的是主排序。
    排序前后各数组元素家的对应关系不会改变