按特定列的特定子值对多维数组进行排序[重复]

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

我有一个多维数组,我需要按

FAILURE_DATE
列中的
MF_B302
值对行进行排序。

[
    [
        'MF_B302' => ['FAILURE_DATE' => '2010-02-01 00:00:00'],
        0 => ['claimnum' => 1]
    ],
    [
        'MF_B302' => ['FAILURE_DATE' => '2009-08-10 00:00:00'],
        0 => ['claimnum' => 2]
    ]
]

我该怎么做?

php arrays sorting multidimensional-array
2个回答
3
投票

这应该可以帮助您温习 PHP 中数组排序的基础知识

http://www.the-art-of-web.com/php/sortarray/

这样的事情可以解决你的问题:

usort($array, "cmp");

function cmp($a, $b){ 
    return strcmp($b['FAILURE_DATE'], $a['FAILURE_DATE']); 
}

1
投票
function failureDateSort($a, $b)
{
    $aDate = strtotime($a['MF_B302']['FAILURE_DATE']);
    $bdate = strtotime($b['MF_B302']['FAILURE_DATE']);
    if ($aDate == $bDate) {
        return 0;
    }
    return ($aDate < $bDate) ? -1 : 1;
}

usort($myArray, "failureDateSort");
© www.soinside.com 2019 - 2024. All rights reserved.