格式化 json 的数组


Formatting an array for json

我正在使用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变量时,我得到[].

有什么想法吗?

array_push($push, $events);

应该是

array_push($events, $push);

或者只是

$events[] = $push;

最好使用

$events[] = $push;

它比必须查找参数顺序更快,更少混乱。

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

$events[] = $push;

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

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

你的 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);