php - 如何在 PHP 中对多维数组进行排序?
问题描述
如果我 var_export 我得到
array (
0 =>
array (
'date' => 2017,
'id' => 128343,
),
1 =>
array (
'date' => 1976,
'id' => 128315,
),
2 =>
array (
'date' => 2006,
'id' => 128310,
),
3 =>
array (
'date' => 1967,
'id' => 128304,
),
4 =>
array (
'date' => 1938,
'id' => 128295,
),
5 =>
array (
'date' => 1978,
'id' => 128293,
),
6 =>
array (
'date' => 1997,
'id' => 128157,
),
7 =>
array (
'date' => 2000,
'id' => 128124,
),
日期混淆了。我正在尝试对这些日期进行排序并将 Id 附加到每个日期 DESC 以便然后再次循环但已订购。我试过
function custom_sort_dt($a, $b) {
return $a['date'] - $b['date'];
}
usort($dateOrdered, "custom_sort_dt");
但我仍然得到错误的顺序。
// the following gives a date
$myDate = (int)get_post_meta($id, 'usp-custom-14', true);
// this attaches the Id and the date
$dateOrdered[] = array("date"=>$myDate, "id"=>$id);
解决方案
你可以使用array_multisort
.
array_multisort($data, SORT_DESC, array_column($data, 'date'));
var_dump($data);
请注意,此函数对原始数组进行操作。如果您想要一个副本,请先构建一个
$copy = $data;
推荐阅读
- mongodb - 我们可以在 Jest 中结合两个预设 MongoDB 和 puppeteer 吗?
- javascript - 显示存储在 mongoDB 中的日期的星期几
- java - Java FXML - 尝试加载新场景时出现空指针异常
- python - 连接表(1:多表关系)的正确 SQLAlchemy ORM 结构是什么?
- javascript - Django 在模板标签中使用变量
- python - Aiogram python InlineKeyboard
- c - 如何在一个结构中定义一个结构并重复使用相同的名称两次?
- java - Micronaut 和 Gradle 无法进行测试
- telegram - 是否可以使用电报机器人内联按钮来获取用户实时位置?
- php - 从 php 在命名管道上运行 shell 命令