使用php将数组转换为json数组

时间:2014-01-09 05:57:11

标签: php jquery arrays json

我有一个如下所示的PHP数组:

 Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [area] => Arappalayam
        )

    [1] => stdClass Object
        (
            [id] => 2
            [area] => Kalavasal
        )

)

现在,我需要将此数组转换为Json数组,如下所示:

    $local_source = [
    {
    id: 1,
    area: "Arappalayam"
    }, {
    id: 2,
    area: "Kalavasal"
    }
];

我试过下面的代码来转换php中的json数组

$availableArea = array_slice($areas[0],0);
return json_encode($availableArea);

但它不起作用,任何想法>?

结果如[{“id”:“1”,“area”:“Arappalayam”},{“id”:“2”,区域:“Kalavasal”}];但我想[{id:1,area:“Arappalayam”},{id:2,area:“Kalavasal”}];

4 个答案:

答案 0 :(得分:1)

您不需要使用array_splice()。只需使用:

json_encode($myArray);

答案 1 :(得分:0)

只需使用json_encode

即可
$local_source = json_encode($array);

检查文档http://pk1.php.net/json_encode

并将其解码回php数组

$array = json_decode($local_source,true);

答案 2 :(得分:0)

1) 你的"id":"1"但不是"id":1是因为PHP中的值实际上是字符串,而不是int。 使用intval()转换它们会产生不同的结果。

2) 不能。您无法生成id:而不是"id":,因为密钥是在标准JSON specification中引用的字符串。除此之外,还有Javascript保留字可能是JSON中的关键。

答案 3 :(得分:0)

您可以按照以下给出的PHP示例

进行操作
$area = array('0' => array('id' => "1",'area' => 'Arappalayam'),
        '1' => array('id' => "2",'area' => 'Kalavasal')
        );

//callback function to do conversion
function convert($value){

  //convert only ID into integer 
  $value['id'] = intval($value['id']);

  return $value;
}   

$area = array_map('convert',$area); 
echo json_encode($area);