У меня есть 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"
}
];
Я попытался использовать код ниже для преобразования json-массива в php
$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"}];
Вам не нужно использовать array_splice()
. Просто используйте:
json_encode($myArray);
Вы можете следовать приведенному ниже примеру 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);
просто используйте json_encode
$local_source = json_encode($array);
проверить документы http://pk1.php.net/json_encode
и при декодировании его обратно в php-массив
$array = json_decode($local_source,true);
1) Ваш "id":"1"
но не "id":1
- это потому, что ваше значение в PHP - это строки, а не int. Преобразование их с помощью метода intval() будет иметь другой результат.
2) Нет. Вы не можете генерировать id:
вместо "id":
потому что ключи цитируются в стандартной спецификации JSON. Кроме того, в JSON могут быть зарезервированные слова Javascript.