首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的PHP数组按子数组键排序

简单的PHP数组按子数组键排序
EN

Stack Overflow用户
提问于 2016-07-25 02:56:38
回答 1查看 235关注 0票数 0

在不使用usort函数的情况下,尝试按"end“对下面的数组进行排序,有简单的方法吗?

代码语言:javascript
复制
$feature_event = array(
    array(
        "title"     => "Classic",
        "date"      => "October 28 - 30 2016",
        "end"       => strtotime("October 30, 2016")
    ),
    array(
        "title"     => "Ski Weekend",
        "date"      => "February 5-8, 2017",
        "end"       => strtotime("February 8, 2017")
    ),
    array(
        "title"     => "NBA Weekend",
        "date"      => "February 17-19, 2017",
        "end"       => strtotime("February 19, 2017")
    ),
    array(
        "title"     => "Fiesta",
        "date"      => "May 26-28, 2017",
        "end"       => strtotime("May 28, 2017")
    )

我是输出的结果,通过一个前景循环,但希望限制在3个结果。

代码语言:javascript
复制
<?php foreach( array_slice($feature_event, 0, 3) as $event): ?>
...
<?php endforeach; ?> 

小解释:我试图显示与事件相关的图像。每个事件都有特定的结束日期。结束日期过去后,在loop...but中显示下一个图像--我希望数组按结束日期排序。我知道usort函数会起作用,但我在编码方面并没有那么先进。是否有一个简单的方式来完成排序的“结束”,或者我需要做一个usort。如果需要,我还需要forloop吗?请原谅我的愚蠢问题。

更新

这个数组多排序解决方案

代码语言:javascript
复制
array_multisort(array_column($feature_event, 'end'), $feature_event);

排序的方式,我需要它,但我想输出数据的基础上的当前日期.我似乎不能创建一个条件,正确工作.

在我的forloop中,我有以下条件:

代码语言:javascript
复制
<?php 
date_default_timezone_set("America/Chicago"); 
$now = strtotime("now");
?>

<?php if($now <= $event["end"]) :?>
    ... code ...
<?php endif;?>

但是它只是输出了两个关于我做错了什么的events....any想法。这个if在前面的循环中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-25 03:12:43

由于end值是时间戳,所以只需将它们提取到数组中并对其排序,对原始数组进行排序:

PHP < 5.5.0

代码语言:javascript
复制
array_multisort(
    array_map(function($v) { return $v['end']; }, $feature_event), $feature_event);

PHP >= 5.5.0

代码语言:javascript
复制
array_multisort(array_column($feature_event, 'end'), $feature_event);

或者使用SORT_DESC作为第三个参数,具体取决于您要排序的方式。

然后使用您的array_slice()获得第一个或最后一个3和循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38559072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档