php中有二数组各print_r出来后,如下Array ( [0] => Array ( [uid] => 4 [username] => gongqi [lastpost] => 1322188470 ) [1] => Array ( [uid] => 39511 [username] => adminbr [lastpost] => 1322554209 ) [2] => Array ( [uid] => 39511 [username] => adminbr [lastpost] => 1322554274 ) )Array ( [0] => Array ( [uid] => 3 [username] => aa[lastpost] => 1322188602 ) [1] => Array ( [uid] => 44 [username] => u44 [lastpost] => 1322701052 ) )
现需:把上面的二数组组成一个新的数组arr_new,并按lastpost从大到小排序,输出新数组中记录时,是按lastpost从大到小输出记录的,这如何实现呀,thanks

解决方案 »

  1.   

    foreach两个数组。重新赋一个值为新的数组$arr_new。
    $arr_new[取lastpost为key]然后krsort($arr_new);一下。就ok拉
      

  2.   

    二个数组为arr1  arr2  数组中字段为 uid   username   lastpost哪位帮我写下。。
      

  3.   

    $arr1 = array(
    array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
    array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
    array('uid' => '39511', 'username' => 'adminbr','lastpost' => '4')
    );$arr2 = array(
    array('uid' => '3', 'username' => 'aa', 'lastpost' => '7'),
    array('uid' => '44', 'username' => 'u44', 'lastpost' => '3')
    );$arr = array_merge($arr1, $arr2);$x = $lastpost = array();
    foreach($arr as $one)
    {
    $lastpost[] = $one['lastpost'];
    }array_multisort($lastpost, $arr);echo '<pre>';print_r($arr);/*
    Array
    (
        [0] => Array
            (
                [uid] => 39511
                [username] => adminbr
                [lastpost] => 1
            )    [1] => Array
            (
                [uid] => 4
                [username] => gongqi
                [lastpost] => 2
            )    [2] => Array
            (
                [uid] => 44
                [username] => u44
                [lastpost] => 3
            )    [3] => Array
            (
                [uid] => 39511
                [username] => adminbr
                [lastpost] => 4
            )    [4] => Array
            (
                [uid] => 3
                [username] => aa
                [lastpost] => 7
            ))
    */
      

  4.   

    小兄弟。很勤快啊。楼主下发这样的贴记得贴出
    $arr1 = array(
        array('uid' => '4',        'username' => 'gongqi',    'lastpost' => '2'),
        array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
        array('uid' => '39511', 'username' => 'adminbr','lastpost' => '4')
    );$arr2 = array(
        array('uid' => '3',        'username' => 'aa',        'lastpost' => '7'),
        array('uid' => '44',    'username' => 'u44',    'lastpost' => '3')
    );
    写这个工作量太大了。
      

  5.   


    $a1 = array(
    array( 'uid' => 4, 'username' => gongqi, 'lastpost' => 1322188470), 
    array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554209 ),
    array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554274 )
    );
    $a2 = array(
    array ( 'uid' => 3, 'username' => aa,'lastpost' => 1322188602 ),
    array ( 'uid' => 44, 'username' => u44, 'lastpost' => 1322701052 ),
    );$a3 = array_merge($a1,$a2);
    $sort = array_map(create_function('$v', 'return $v["lastpost"];'), $a3);
    array_multisort($sort,SORT_NUMERIC,SORT_DESC,$a3);echo '<pre>';
    print_r($a3);
    echo '</pre>';
    /*
    Array
    (
        [0] => Array
            (
                [uid] => 44
                [username] => u44
                [lastpost] => 1322701052
            )    [1] => Array
            (
                [uid] => 39511
                [username] => adminbr
                [lastpost] => 1322554274
            )    [2] => Array
            (
                [uid] => 39511
                [username] => adminbr
                [lastpost] => 1322554209
            )    [3] => Array
            (
                [uid] => 3
                [username] => aa
                [lastpost] => 1322188602
            )    [4] => Array
            (
                [uid] => 4
                [username] => gongqi
                [lastpost] => 1322188470
            ))
     */
      

  6.   

    <?php$a1 = array(
        array( 'uid' => 4, 'username' => gongqi, 'lastpost' => 1322188470), 
        array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554209 ),
        array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554274 )
    );
    $a2 = array(
        array ( 'uid' => 3, 'username' => aa,'lastpost' => 1322188602 ),
        array ( 'uid' => 44, 'username' => u44, 'lastpost' => 1322701052 ),
    );foreach ($a1 as $key=>$val) $a3[$val['lastpost']] = $val;
    foreach ($a2 as $key=>$val) $a3[$val['lastpost']] = $val;
    krsort($a3);echo '<pre>';
    print_r($a3);
    echo '</pre>';
      

  7.   

    哎,没办法啊,为啥发帖子的就不能够用var_export呢,非要用var_dump和print_r的确挺费事的
      

  8.   


    不错的方法,不过提醒下,呵呵,假如不是lastpost而是id什么的,就有可能是有相同的存在那么,就会丢失元素
      

  9.   

    我的做法,复制array()部分,替换[|]为',就OK了.
      

  10.   

    呵呵。。各位有才了。楼主把分都蚪给kyzy_yy_pm吧。。