Как создать массив для JSON с использованием PHP?

Из PHP-кода я хочу создать json-массив:

[
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"}
]

Как я могу это сделать?

Ответ 1

Легкая лихорадка лисички: http://www.php.net/manual/en/function.json-encode.php

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

На вышеупомянутой странице есть сообщение andyrusterholz at g-m-a-i-l dot c-o-m, которое также может обрабатывать сложные вложенные массивы (если это ваша вещь).

Ответ 2

Используйте PHP native json_encode, например:

<?php
$arr = array(
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    )
);

echo json_encode($arr);
?>

Обновить. Чтобы ответить на ваш вопрос в комментарии. Вы делаете это так:

$named_array = array(
    "nome_array" => array(
        array(
            "foo" => "bar"
        ),
        array(
            "foo" => "baz"
        )
    )
);
echo json_encode($named_array);

Ответ 3

Просто: просто создайте (вложенный) массив PHP и вызовите json_encode на нем. Числовые массивы переводятся в списки JSON ([]), ассоциативные массивы и объекты PHP преобразуются в объекты ({}). Пример:

$a = array(
        array('foo' => 'bar'),
        array('foo' => 'baz'));
$json = json_encode($a);

Дает вам:

[{"foo":"bar"},{"foo":"baz"}]

Ответ 4

Лучший способ, который вы должны использовать каждый раз для создания json в php, - это сначала преобразовать значения в массив ASSOCIATIVE.

После этого просто кодируйте с помощью json_encode($associativeArray). Я думаю, что это лучший способ создать json в php, потому что всякий раз, когда мы извлекаем форму sql-запроса в php большую часть времени, мы получили значения с помощью функции fetch_assoc, которые также возвращают один ассоциативный массив.

$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';

... и др.

После этого.

json_encode($associativeArray);

Ответ 5

также для массива вы можете использовать короткую аннотацию:

$arr = [
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ]
];

echo json_encode($arr);

Ответ 6

$json_data = '{ "Languages:" : [ "English", "Spanish" ] }';
$lang_data = json_decode($json_data);
var_dump($lang_data);

Ответ 7

Просто набрав эту строку, вы получите json-массив,

echo json_encode($array);

Обычно вы используете json_encode для чтения данных из приложения ios или Android. поэтому убедитесь, что вы не повторяете ничего другого, кроме точного массива json.