您好我最近遇到了json_encode函數的例子。很迷茫約1部分:PHP中的json_encode方法
<?php
$runners=array{
'fname'=>5
'you' => 6
};
echo json_encode (array("runners"=>$runners));
?>
的問題是,爲什麼不能在最後一行的代碼僅僅是:
echo json_encode ($runners);
感謝,
您好我最近遇到了json_encode函數的例子。很迷茫約1部分:PHP中的json_encode方法
<?php
$runners=array{
'fname'=>5
'you' => 6
};
echo json_encode (array("runners"=>$runners));
?>
的問題是,爲什麼不能在最後一行的代碼僅僅是:
echo json_encode ($runners);
感謝,
首先你的數組是wrogly使用的。它將使用小括號()
而不是捲曲{}
。所以,你的陣列將變爲:
$runners=array(
'fname' => 5,
'you' => 6
);
現在,當你這樣做json_encode()
爲:echo json_encode ($runners);
你會得到輸出:
{"fname":5,"you":6}
如果你這樣做:echo json_encode (array("runners"=>$runners));
你會得到輸出:
{"runners":{"fname":5,"you":6}}
這個答案似乎解決了*實際問題,而不僅僅是關於語法錯誤的評論。 – GolezTrol
首先,你array declaration是不正確如果你運行代碼,你會得到一個語法錯誤。您應該使用array(...)
而不是array{...}
。這些值需要用逗號分隔。例如:
array(
key => value,
key2 => value2,
key3 => value3,
...
)
下面應該工作:
$runners = array(
'fname' => 5,
'you' => 6
);
echo json_encode($runners);
輸出:
{"fname":5,"you":6}
如何是這兩種不同的
最終的結果是兩種情況不同。當你做json_encode(array("runners"=>$runners));
,數組是多維的,和JSON輸出會發生變化,也:
{"runners":{"fname":5,"you":6}}
哪一個你應該使用
依賴。在第一個數組中,只需創建名爲fname
和you
的兩個鍵,並在第二個中添加另一個鍵runners
,從而使該數組具有多維性。如果您希望這些信息出現在生成的JSON字符串中,則應該使用第二個。如果不是,請使用第一個。
是的,但我不認爲這個問題是關於這個語法錯誤的。 – GolezTrol
@GolezTrol:我已經更新了答案:) –
首先,您在數組中使用{
這是不正確的。並且在數組元素之間沒有,
。
你可以同時使用。但你必須通過不同的方式訪問2 json。取決於您的選擇。 (最好選擇)你有一維數組。
$runners=array(
'fname'=>5,
'you' => 6
);
echo json_encode ($runners);
OUTPUT:
{"fname":5,"you":6}
在第二你有2D陣列。
$runners=array(
'fname'=>5,
'you' => 6
);
echo json_encode (array("runners"=>$runners));
OUTPUT:
{"runners":{"fname":5,"you":6}}
這取決於你想如何來代表它。你準確期待哪種數據結構? – BlitZ
問題是你的數組聲明不正確,你正在使用{..}而不是(..) – harishkumar329