Php 是否可以使用数组_split按日期拆分数据库结果?

Php 是否可以使用数组_split按日期拆分数据库结果?,php,Php,我不知道这能不能做到。我从数据库返回了1000多行,并希望在返回后使用array_split按日期对它们进行拆分。日期以unix时间戳的形式显示 我想做的是按日期分页这些结果。如果可以做到这一点,有人能给我举个小例子,或者给我指出我需要走的方向吗 您需要选择将格式从时间戳转换为日期字符串的新字段,并按其排序 循环遍历结果集,当日期与上一个值不同时,创建一个子数组 PHP代码和SQL(PS:您必须首先按“创建日期”进行订购) PS:groupby函数并不能真正对整个数据集进行分组 $sql = "

我不知道这能不能做到。我从数据库返回了1000多行,并希望在返回后使用array_split按日期对它们进行拆分。日期以unix时间戳的形式显示

我想做的是按日期分页这些结果。如果可以做到这一点,有人能给我举个小例子,或者给我指出我需要走的方向吗

  • 您需要选择将格式从时间戳转换为日期字符串的新字段,并按其排序
  • 循环遍历结果集,当日期与上一个值不同时,创建一个子数组
  • PHP代码和SQL(PS:您必须首先按“创建日期”进行订购)

    PS:
    groupby
    函数并不能真正对整个数据集进行分组

    $sql = " SELECT *, DATE_FORMAT(create_timestamp, '%Y-%m-%d') as create_date FROM some_table order by create_date asc";
    
    $result = mysqli_query($dblink, $sql);
    
    $grouped = group_by($result, 'create_date');
    
    
    function group_by($inArray, $keyName) {
        if (is_array($inArray) && count($inArray)>0) {
            $cabinet = array();
            $tempBox = array();
            $prevoius_value = $inArray[0][$keyName];
            for($b=0;$b<count($inArray);$b++){
                $box = $inArray[$b];
                if ($prevoius_value != $box[$keyName]){
                    array_push($cabinet, $tempBox);
                    $tempBox = array();
                    $prevoius_value = $box[$keyName];
                }
                array_push($tempBox, $box);
            }
             array_push($cabinet, $tempBox);
             return $cabinet;
        }
    }
    

    1.试着在DB端做。2.举例说明
    $result = array(
        [0] => array(
            'id' => 1,
            'name' => 'One',
            'create_timestamp' => '123456789',
            'create_date' => '2014-04-02'
        ),
    
        [1] => array(
            'id' => 1,
            'name' => 'Two',
            'create_timestamp' => '123456789',
            'create_date' => '2014-04-03'
        ),
    
        [2] => array(
            'id' => 1,
            'name' => 'Three',
            'create_timestamp' => '123456789',
            'create_date' => '2014-04-03'
        ),
    
        [3] => array(
            'id' => 1,
            'name' => 'Four',
            'create_timestamp' => '123456789',
            'create_date' => '2014-04-04'
        ),
    );
    
    $grouped = array(
        [0] => array(
            [0] => array(
                'id' => 1,
                'name' => 'One',
                'create_timestamp' => '123456789',
                'create_date' => '2014-04-02'
            )
        ),
    
        [1] => array(
            [0] => array(
                'id' => 2,
                'name' => 'Two',
                'create_timestamp' => '123456789',
                'create_date' => '2014-04-03'
            ),
    
            [1] => array(
                'id' => 3,
                'name' => 'Three',
                'create_timestamp' => '123456789',
                'create_date' => '2014-04-03'
            )
        ),
    
        [2] => array(
            [0] => array(
                'id' => 4,
                'name' => 'Four',
                'create_timestamp' => '123456789',
                'create_date' => '2014-04-04'
            )
        ),
    );