PHP 多维数组排序 array_reverse 不起作用? [重复]

问题描述 投票:0回答:2

我有一个

Multidimensional
数组,我正在疯狂地尝试按日期正确排序。

到目前为止我已经:

usort($respArr, function($a, $b){
        $t1 = strtotime($a['PublishDate']);
        $t2 = strtotime($b['PublishDate']);
        return $t1 - $t2;
    });

array_reverse($respArr);
echo '<pre>';
print_r($respArr);
echo '</pre>';
echo '<hr />';

这是上面的一些输出:

Array
(
[34] => Array
    (
        [Title] => o7thwd: Partnered with Internet Services Inc., to offer complete online presence! http://t.co/1SgAF66Tbf @ISI_Cloud
        [Link] => http://twitter.com/o7thwd/statuses/306088158574022656
        [PublishDate] => 2/25/2013 12:07:58 PM
        [Image] => 
        [Description] => o7thwd: Partnered with Internet Services Inc., to offer complete online presence! http://t.co/1SgAF66Tbf @ISI_Cloud
    )

[35] => Array
    (
        [Title] => o7thwd: Hangin with Mama Bear giving her the basics of social networking
        [Link] => http://twitter.com/o7thwd/statuses/307916797066240000
        [PublishDate] => 3/2/2013 1:14:19 PM
        [Image] => 
        [Description] => o7thwd: Hangin with Mama Bear giving her the basics of social networking
    )

[36] => Array
    (
        [Title] => o7thwd: o7th Web Design Articles http://t.co/plP8OkB7So
        [Link] => http://twitter.com/o7thwd/statuses/308687737400205313
        [PublishDate] => 3/4/2013 4:17:46 PM
        [Image] => 
        [Description] => o7thwd: o7th Web Design Articles http://t.co/plP8OkB7So
    )

[37] => Array
    (
        [Title] => o7thwd: finished up my GUI for a YUI minifier: http://t.co/7DKLoCXJHw
        [Link] => http://twitter.com/o7thwd/statuses/309309871931682816
        [PublishDate] => 3/6/2013 9:29:54 AM
        [Image] => 
        [Description] => o7thwd: finished up my GUI for a YUI minifier: http://t.co/7DKLoCXJHw
    )

[38] => Array
    (
        [Title] => o7thwd: o7th Web Design Articles http://t.co/QAIUO2Qjko
        [Link] => http://twitter.com/o7thwd/statuses/314356123027243008
        [PublishDate] => 3/20/2013 8:41:54 AM
        [Image] => 
        [Description] => o7thwd: o7th Web Design Articles http://t.co/QAIUO2Qjko
    )

[39] => Array
    (
        [Title] => SkorIn2: starting new desktop app to compliment the web app
        [Link] => http://twitter.com/SkorIn2/statuses/314718985725804545
        [PublishDate] => 3/21/2013 8:43:48 AM
        [Image] => 
        [Description] => SkorIn2: starting new desktop app to compliment the web app
    )

)

但是,正如您在上面所看到的,数组没有反转有人可以帮我吗?
它向我表明该数组确实是按“PublishDate”排序的,但是是以与我需要的相反的顺序排列的。

php multidimensional-array sorting
2个回答
19
投票

实际的问题是你没有将

array_reverse
的结果分配给任何东西

// change this
array_reverse($respArr);

// to this
$respArr = array_reverse($respArr);

1
投票

试试这个:

$arr  = your array;
$sort = array();
foreach($arr as $k=>$v) {
    $sort['PublishDate'][$k] = $v['PublishDate'];
}

array_multisort($sort['PublishDate'], SORT_DESC, $arr);

echo "<pre>";
print_r($arr);

但是请确保您的日期格式正确,否则这可能不起作用。将其格式化为

yyyy-mm-dd hh:mm:ss

© www.soinside.com 2019 - 2024. All rights reserved.