Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook风格的通知日期循环?_Php_Loops - Fatal编程技术网

Php Facebook风格的通知日期循环?

Php Facebook风格的通知日期循环?,php,loops,Php,Loops,我想在我的网站上实现类似的功能: 但我的问题是我无法找出以下循环机制: 找到今天日期相同的组 然后将日期减一,然后将所有数据与该日期分组 减量并再次分组 以下是我的数组形式的数据: Array ( [0] => Array ( [name] => test1 [date] => 2013-07-15 04:02:53 ) [1] => Array ( [name] => mine2 [date] => 2013-07-15 03

我想在我的网站上实现类似的功能:

但我的问题是我无法找出以下循环机制:

  • 找到今天日期相同的组
  • 然后将日期减一,然后将所有数据与该日期分组
  • 减量并再次分组
  • 以下是我的数组形式的数据:

    Array (
    [0] => Array (
        [name] => test1
        [date] => 2013-07-15 04:02:53
    )
    [1] => Array (
        [name] => mine2
        [date] => 2013-07-15 03:24:57
    )
    [2] => Array (
        [name] => mine3
        [date] => 2013-07-12 04:19:59
    )
    [3] => Array (
        [name] => mine4
        [date] => 2013-07-11 05:05:38
    )
    [4] => Array (
        [name] => mine5
        [date] => 2013-07-10 05:05:38
    )
    [5] => Array (
        [name] => ffff
        [date] => 2013-07-10 05:02:38
    )
    [6] => Array (
        [name] => affff
        [date] => 2013-07-09 05:02:38
    )
    
    )


    有人想分享他们关于如何在while/for循环中对日期进行分组的知识吗?

    我的方法是循环数据(假设数据按日期排序),并将所有具有相同日期的项目分组,如下所示:

    $grouped_data = array();
    $lastday = null;
    foreach($data as $d){
        $thisday = strtotime(substr($d['date'],0,10));
        $grouped_data[$thisday][] = $d;
        if($thisday != $lastday)
            $lastday = $thisday;
    }
    
    现在,您所要做的就是循环浏览分组数据中的日期,并显示每个日期中的项目:

    foreach($grouped_data as $day => $data){
        echo '<h2>'.date('M d', $day).'</h2>';
        foreach($data as $d){
            echo $d['name'].'<br/>';
        }
    }
    

    我的方法是循环遍历数据(假设数据按日期排序),并将具有相同日期的所有项目分组,如下所示:

    $grouped_data = array();
    $lastday = null;
    foreach($data as $d){
        $thisday = strtotime(substr($d['date'],0,10));
        $grouped_data[$thisday][] = $d;
        if($thisday != $lastday)
            $lastday = $thisday;
    }
    
    现在,您所要做的就是循环浏览分组数据中的日期,并显示每个日期中的项目:

    foreach($grouped_data as $day => $data){
        echo '<h2>'.date('M d', $day).'</h2>';
        foreach($data as $d){
            echo $d['name'].'<br/>';
        }
    }
    

    感谢考拉·迪夫的出色解决方案!感谢考拉·迪夫的出色解决方案!