我有以下PHP数组:
array("Apple", "Pear", "Grape", "Orange")
我想得到如下的JSON输出:
[[{"fruit":"Apple"}],[{"fruit":"Pear"}],[{"fruit":"Grape"}],[{"fruit":"Orange"}]]
JSON让我困惑:(
修改的 对不起,输出中的最后两个应该是水果,我纠正了,对不起家伙。
答案 0 :(得分:5)
如果您希望JSON输出看起来像这样,您应该将PHP值更改为如下所示:
array(array(array('fruit' => 'Apple')), array(array('fruit' => 'Pear')), array(array('fruit' => 'Grape')), array(array('fruit' => 'Orange')))
然后将该数组传递给json_encode()
答案 1 :(得分:2)
$fruit = array("Apple", "Pear", "Grape", "Orange");
$json = array();
foreach($fruit as $f){
$json[][] = array('fruit' => $f);
}
echo json_encode($json);
// [[{"fruit":"Apple"}],[{"fruit":"Pear"}],[{"fruit":"Grape"}],[{"fruit":"Orange"}]]
答案 2 :(得分:1)
你可以编写一个小函数来获取索引数组和你想要的键值,并吐出所需的结构。
function associativify($array, $key) {
$result = array();
foreach ($array as $item) {
$result[] = array(array($key => $item));
}
return $result;
}
$subject = array("Apple", "Pear", "Grape", "Orange");
$munged = associativify($subject, 'fruit');
$json = json_encode($munged);
(旁白:选择比我更好的功能名称!)
答案 3 :(得分:0)
json_encode是您正在寻找的功能
答案 4 :(得分:0)
http://php.net/json_encode(如果你很懒)