为json格式化数组

时间:2012-08-17 13:42:02

标签: php

我正在使用FullCalendar jquery插件在我的网站上显示日历。我能够对我的日历上显示的任何值进行硬编码。格式应为:

echo json_encode(array(

        array(
            'id' => 1136,
            'title' => "Understanding Health-Care Regulations (Part II) and COBRA Compliance Strategies",
            'start' => "2011-11-17",
            'url' => "/www/conferences/conference.php?ID=1136"
        ),

        array(
            'id' => 1154,
            'title' => "Making the Most of your Membership",
            'allDay' => false,
            'start' => "Wed, 18 Nov 2011 11:00:00 EST",
            'url' => "/www/conferences/conference.php?ID=1154"
        ),
        array(
            'id' => 1137,
            'title' => "2011 Annual Human Resources Conference",
            'start' => "2011-11-29",
            'url' => "/www/conferences/conference.php?ID=1137"
        ),


    ));

当试图模仿这个数组结构时,我正在使用它:

$conferences = dbStoredProc('cp_meeting_get_list_new');
$events = array();

foreach ($conferences as $c){
    $push = array(
        'id'        => $c['ID'],
        'title'     => $c['name'],
        'start'     => date("Y", $c['epochDate']) . "-" . date("M", $c['epochDate']) . "-" . date("d", $c['epochDate']),
        'url'       => '/events/details.php?id' . $c['ID'],
    );
    array_push($push, $events);
}
echo json_encode($events);

当我回复我的$events变量时,我得到[]

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

array_push($push, $events);

应该是

array_push($events, $push);

或只是

$events[] = $push;

答案 1 :(得分:1)

最好只使用

将数据附加到数组中
$events[] = $push;

它比查询参数顺序更快,更容易混淆。

答案 2 :(得分:1)

正如xdazz所说,你需要将参数切换为array_push。或者,使用[]语法将项目推送到数组的末尾:

$events[] = $push;

此外,您可以将多个格式说明符传递给date,因此您的起始行可以写为:

date("Y-M-d", $c['epochDate']),   

答案 3 :(得分:0)

你的PHP存在缺陷。试试这个:

$conferences = dbStoredProc('cp_meeting_get_list_new');
$events = array();

foreach ($conferences as $c){
   $events[] = array(
       'id'        => $c['ID'],
       'title'     => $c['name'],
       'start'     => date("Y-M-d", $c['epochDate']),
       'url'       => '/events/details.php?id' . $c['ID']
    );
}
echo json_encode($events);