如何使用PHP按月字段排序并从现有数组生成新的数组对象
实现方法
你可以通过以下两种常用方案实现按month字段升序排序:
方案1:使用usort()(推荐)
PHP 7.0及以上版本可直接用太空船运算符编写比较逻辑:
// 若需要保留原数组,先拷贝再排序 $newsource = $source; usort($newsource, function ($a, $b) { return $a['month'] <=> $b['month']; });
如果运行环境是PHP 7以下版本,将比较逻辑替换为减法即可:
$newsource = $source; usort($newsource, function ($a, $b) { return $a['month'] - $b['month']; });
方案2:使用array_multisort()
先提取所有month字段值作为排序依据,再联动排序原数组:
$months = array_column($source, 'month'); array_multisort($months, SORT_ASC, $source); // 如需保留原数组,提前拷贝$source到$newsource再操作即可
两种方案最终得到的排序结果都和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者joenpc npcsolution
相关产品推荐
相关产品推荐

