如何在多维数组上使用 usort()?
How do I use usort() on a multidimensional array?
我有以下从循环中创建的多维数组。 'date' 的格式为 'Ymd'。 (我这样做是因为我有 2 个不同的日期字段以不同的格式出现,我想将它们组合起来并按通用格式排序)
$myArray = array (
'date' => $eDate,
'title' => $title,
'permalink' => $permalink
);
我如何编写一个简单的比较函数来传递给 usort(),以便我可以按 'date' 的那个键进行排序?那么我可以做一个简单的foreach吗?
@IMSoP当然是对的,早就给出了很全面的答案。但是,为了帮助您,这里是 quoted answer 的简短摘录,其中包含与您的问题相关的部分:
usort($myArray,'cmp');
function cmp(array $a, array $b) {
$ad=$a['date']; $bd=$b['date'];
if ($ad < $bd) {
return -1;
} else if ($ad > $bd) {
return 1;
} else {
return 0;
}
}
我有以下从循环中创建的多维数组。 'date' 的格式为 'Ymd'。 (我这样做是因为我有 2 个不同的日期字段以不同的格式出现,我想将它们组合起来并按通用格式排序)
$myArray = array (
'date' => $eDate,
'title' => $title,
'permalink' => $permalink
);
我如何编写一个简单的比较函数来传递给 usort(),以便我可以按 'date' 的那个键进行排序?那么我可以做一个简单的foreach吗?
@IMSoP当然是对的,早就给出了很全面的答案。但是,为了帮助您,这里是 quoted answer 的简短摘录,其中包含与您的问题相关的部分:
usort($myArray,'cmp');
function cmp(array $a, array $b) {
$ad=$a['date']; $bd=$b['date'];
if ($ad < $bd) {
return -1;
} else if ($ad > $bd) {
return 1;
} else {
return 0;
}
}