PHP多维数组排序array_reverse无效?

时间:2022-03-27 21:26:39

I have a Multidimensional array that I am trying feverishly to properly sort by the date.

我有一个多维数组,我正在*地按日期进行正确排序。

So far I've got:

到目前为止我有:

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

Here's some of the output from the above:

下面是上面的一些输出:

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
    )

)

However, the array is not reversed, as you can tell above. Can anyone help me with this?
It's showing me that the array is indeed sorted by the 'PublishDate', however, in the reverse order that I need it in.

然而,这个数组并没有被反转,正如您可以看到的那样。有人能帮我一下吗?它向我展示了数组确实是按照“PublishDate”排序的,但是,顺序与我需要它的顺序相反。

2 个解决方案

#1


15  

The actual problem is you're not assigning the result of array_reverse to anything

实际的问题是您没有将array_reverse的结果赋给任何东西

// change this
array_reverse($respArr);

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

#2


1  

Try this :

试试这个:

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

But make your date prperly formated, else this may not work. format it to yyyy-mm-dd hh:mm:ss

但是要让你的约会井然有序,否则这可能行不通。格式为yyyy-mm-dd:mm:ss

#1


15  

The actual problem is you're not assigning the result of array_reverse to anything

实际的问题是您没有将array_reverse的结果赋给任何东西

// change this
array_reverse($respArr);

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

#2


1  

Try this :

试试这个:

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

But make your date prperly formated, else this may not work. format it to yyyy-mm-dd hh:mm:ss

但是要让你的约会井然有序,否则这可能行不通。格式为yyyy-mm-dd:mm:ss