$arr = Array ( [0] => aaa 2 [1] => bbb 1 [2] => ccc 3);
请问如何以每一列的后面的数字2,1,3排序,想排序之后结果变成
$arr = Array ( [0] => bbb 1  [1] => aaa 2[2] => ccc 3);请各位赐教,感激不尽!

解决方案 »

  1.   

    <?php 
    $arr = array ( 0 => 'aaa 2', 1 => 'bbb 1', 2 => 'ccc 3'); foreach($arr as $v) {
      $r[] = array_pop(split(' ', $v));
    }
    array_multisort($r, $arr);print_r($arr);
    ?>
    Array
    (
        [0] => bbb 1
        [1] => aaa 2
        [2] => ccc 3
    )
      

  2.   

    $arr = array(0 => array('aaa',2),1 => array('bbb',1),2 => array('ccc',3)); 
    function sort_($a, $b)
    {
    if ($a[1] == $b[1]) return 0;
    return ($a[1] < $b[1]) ? -1 : 1;
    }
    usort($arr, 'sort_');
    print_r($arr);
    运行结果:
    Array
    (
        [0] => Array
            (
                [0] => bbb
                [1] => 1
            )    [1] => Array
            (
                [0] => aaa
                [1] => 2
            )    [2] => Array
            (
                [0] => ccc
                [1] => 3
            ))
      

  3.   

    请问唠叨,你的程序挺好的,但我刚才说的不完全,我有多项就不行了
    $arr = array ( 0 => 'aaa d 2 c', 1 => 'bbb d 1 e', 2 => 'ccc ww 3 ad'); 
    还是想排序成$arr = array ( 0 => 'bbb d 1 e''aaa d 2 c', 1 => 'aaa d 2 c', 2 => 'ccc ww 3 ad'); 
      

  4.   

    建议lz给出所有可能的情况,你不说清楚,人家就不可能给你更为准确的代码。$arr = array ( 0 => 'bbb d 1 e', 1 => 'aaa d 2 c', 2 => 'ccc ww 3 ad');
    这个还好说
    $arr = array ( 0 => 'bbb d 1 e 456', 1 => 'aaa d 2 c 218', 2 => 'ccc ww 3 ad 100 ww 1000');
    这样的你又想怎么处理?
      

  5.   

    3楼我说错了,不好意思!
    是想把$arr = array ( 0 => 'aaa d 2 c', 1 => 'bbb d 1 e', 2 => 'ccc ww 3 ad'); 
    排序成$arr = array ( 0 => 'bbb d 1 e', 1 => 'aaa d 2 c', 2 => 'ccc ww 3 ad');