PHP索引数组到关联JSON

时间:2011-08-18 20:01:08

标签: php json

我有以下PHP数组:

array("Apple", "Pear", "Grape", "Orange")

我想得到如下的JSON输出:

[[{"fruit":"Apple"}],[{"fruit":"Pear"}],[{"fruit":"Grape"}],[{"fruit":"Orange"}]]

JSON让我困惑:(

修改的 对不起,输出中的最后两个应该是水果,我纠正了,对不起家伙。

5 个答案:

答案 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(如果你很懒)