+ -
当前位置:首页 → 问答吧 → 二个数组,组成一个有序的新数组,在线等

二个数组,组成一个有序的新数组,在线等

时间:2011-12-01

来源:互联网

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

作者: zgycsmb   发布时间: 2011-12-01

foreach两个数组。重新赋一个值为新的数组$arr_new。
$arr_new[取lastpost为key]

然后krsort($arr_new);一下。就ok拉

作者: ci1699   发布时间: 2011-12-01

二个数组为arr1 arr2 数组中字段为 uid username lastpost

哪位帮我写下。。

作者: zgycsmb   发布时间: 2011-12-01

PHP code
$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
        )

)
*/

作者: kyzy_yy_pm   发布时间: 2011-12-01

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$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')
);
写这个工作量太大了。


引用 3 楼 kyzy_yy_pm 的回复:

PHP code
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
array('uid' => '3951……

作者: ci1699   发布时间: 2011-12-01

PHP code

$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
        )

)
 */


作者: ZT_King   发布时间: 2011-12-01

<?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>';

作者: ci1699   发布时间: 2011-12-01

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
……

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

作者: kyzy_yy_pm   发布时间: 2011-12-01

引用 6 楼 ci1699 的回复:

<?php

$a1 = array(
array( 'uid' => 4, 'username' => gongqi, 'lastpost' => 1322188470),
array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554209 ),
array( 'uid' => 395……


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

作者: kyzy_yy_pm   发布时间: 2011-12-01

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
……

总是发现每次我整理完了后面的通知就省事了,不用自己整理数据了,我是活雷锋了

作者: kyzy_yy_pm   发布时间: 2011-12-01

引用 9 楼 kyzy_yy_pm 的回复:

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' ……

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

作者: ZT_King   发布时间: 2011-12-01

引用 10 楼 zt_king 的回复:

引用 9 楼 kyzy_yy_pm 的回复:

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username……

谢谢分享啊,呵呵

作者: kyzy_yy_pm   发布时间: 2011-12-01

引用 11 楼 kyzy_yy_pm 的回复:

引用 10 楼 zt_king 的回复:

引用 9 楼 kyzy_yy_pm 的回复:

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('ui……

忘了,还要加小JJ符号

作者: ZT_King   发布时间: 2011-12-01

引用 10 楼 zt_king 的回复:

引用 9 楼 kyzy_yy_pm 的回复:

引用 4 楼 ci1699 的回复:

小兄弟。很勤快啊。

楼主下发这样的贴记得贴出
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username……


忘记小蝌蚪了

作者: ohmygirl   发布时间: 2011-12-01

呵呵。。各位有才了。

楼主把分都蚪给kyzy_yy_pm吧。。

作者: ci1699   发布时间: 2011-12-01

相关阅读 更多