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