关于使用PHP json_encode的数组

时间:2012-12-12 23:18:05

标签: php ajax arrays json

$cnt = 0;
while ($row = $result->fetch_assoc()) 
{
    $arre[$cnt]['id'] = $row['idevents'];
    $arre[$cnt]['title'] = $row['title'];
    $arre[$cnt]['start'] = "new Date(" . $row['start'] . "*1000)";
    $arre[$cnt]['end'] = "new Date(" . $row['end'] . "*1000)";
    $arre[$cnt]['allDay'] = $row['allday'];
    $arre[$cnt]['url'] = $row['url'];
    $cnt++;
}


$year = date('Y');
$month = date('m');

echo json_encode(array(

array(
    'id' => 111,
    'title' => "Event1",
    'start' => "$year-$month-10",
    'url' => "http://yahoo.com/"
),

array(
    'id' => 222,
    'title' => "Event2",
    'start' => "$year-$month-20",
    'end' => "$year-$month-22",
    'url' => "http://yahoo.com/"
)

));

?>

脚本底部的json_encode是一个示例。我需要获取$ arre和json_encode中的数据。 json_encode的格式需要保持完全相同,否则程序可能会发现它不适合我的程序将无法正常工作。有谁知道正确的代码技术在这里会是什么样的?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您正在寻找使用json_encode()将数组返回到函数的正确格式,那么这是一个示例。使用键值对来访问不同的成员:

此外,使用关联数组,以便您可以通过列的名称而不是整数值来迭代客户端上的元素。

while ($row = $result->fetch_assoc()) 
{
    $thisRow = array(
                     'id'     => $row['idevents'],
                     'title'  => $row['title'],
                     'start'  => date("F j, Y, g:i a", strtotime($row['start'])),
                     'end'    => date("F j, Y, g:i a", strtotime($row['end'])),
                     'allDay' => $row['allday'],
                     'url'    => $row['url']
    );
    array_push($arre, $thisRow);
}

return json_encode(
    array(
        "result" => "success", 
        "data" => $arre
    )
);

然后在你的javascript / jquery中:

$.post("myPost.php", post_data,
    function(data) {
        // store data.result;
        // store data.data;
    }, 
"json");