[英]How to get an array like the following from mysql through php?
I have a table like this- 我有一张这样的桌子-
event (id,name,date)
I need a result set like this 我需要这样的结果集
$result = array(
'1'=>array(
array('id'=>2,'name'=>'foolball match','date'=>'2011-01-23'),
array('id'=>5,'name'=>'cricket match','date'=>'2011-01-27')
),
'3'=>array(
array('id'=>11,'name'=>'100 m run','date'=>'2011-03-12'),
array('id'=>27,'name'=>'Basket Ball','date'=>'2011-03-20'),
array('id'=>43,'name'=>'foolball match','date'=>'2011-03-29')
)
);
Here array keys (1,3) represents months (jan,mar). 在这里,数组键(1,3)表示月份(jan,mar)。 Events will be stored under these month number key. 事件将存储在这些月份的数字键下。 Here 2 is missing because there are no events in februry. 这里缺少2,因为2月中没有任何事件。
Can anybody please help me? 有人可以帮我吗?
Try this 尝试这个
$result = array();
$year = 2011;
$query = 'SELECT `id`, `name`, `date`, EXTRACT(MONTH FROM `date`) AS `month` FROM `event` WHERE EXTRACT(YEAR FROM `date`) = "' . $year . '" ORDER BY `date` DESC';
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res)) {
$result[$row['month']][] = $row;
}
提取数据后,循环遍历PHP中的结果集,处理日期值。
//assuming events are in this format
$events = array(
array('id'=>2,'name'=>'foolball match','date'=>'2011-01-23'),
array('id'=>5,'name'=>'cricket match','date'=>'2011-01-27'),
array('id'=>11,'name'=>'100 m run','date'=>'2011-03-12'),
array('id'=>27,'name'=>'Basket Ball','date'=>'2011-03-20'),
array('id'=>43,'name'=>'foolball match','date'=>'2011-03-29')
);
$result = array();
foreach ($events as $event) {
$month = (int)date('m', strtotime($event['date']));
$result[$month][] = $event;
}
var_dump($result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.