如何通过php从mysql获取如下数组?

如何通过php从mysql获取如下数组?,php,sql,arrays,Php,Sql,Arrays,我有一张这样的桌子- event (id,name,date) 我需要这样的结果集 $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'=

我有一张这样的桌子-

event (id,name,date)
我需要这样的结果集

$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')
    )
);
这里,数组键(1,3)表示月份(一月、三月)。 事件将存储在这些月号键下。 此处缺少2,因为2月份没有事件

有人能帮我吗?

试试这个

$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中的结果集,处理日期值。

您可以尝试使用避免使用
mysql\u查询和朋友,而不是使用和准备好的语句。
//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);