Я создаю структуру JSON для передачи обратно в Ajax. Я хотел бы вставить 'para' => "Hello"
в "content"
как это:
{
"sections": {
"content": [{
"para": "Hello"}]
}
}
Я пытался использовать этот код:
$array = array('sections' => array());
array_push($array["sections"], array("content" => array())); // content must be initialized as empty
array_push($array["sections"][0], array("para" => "Hello"));
Но я получил это вместо:
{
"sections": [{
"content": [],
"0": {
"para": "Hello"}
}]
}
Если я попробую array_push($array["sections"]["content"], array("para" => "Hello"))
Вместо этого я получаю ошибку. Как мне вставить массив в "content"
? Что я делаю неправильно?
Если я правильно понял ваши намерения, вот структура массива, к которой вы стремитесь:
array("sections" => array(
"content" => array("para" => "Hello"),
));
Однако в Javascript [] представляет массив, а {} представляет объект. Если вы пытаетесь создать объект со свойством «0», это не возможно в PHP. Имена переменных должны начинаться с буквы или подчеркивания.
Вот массив content
объекты:
$content = new stdClass();
$content->para = 'hello';
array("sections" => array(
"content" => array($content),
));
Чтобы добавить массивы содержимого:
array("sections" => array(
"content" => array(
array("para" => "Hello"),
array("para" => "Hello"),
array("para" => "Hello"),
),
));
Вы также можете сначала создать свой собственный массив содержимого, если вы выполняете итерацию по индексу, а затем json_encode. Основной пример:
$content = array();
for (i=0; i <3; i++) {
$content[] = array('para' => 'hello');
}
json_encode(array("sections" => array(
"content" => array($content),
)));
Чтобы преобразовать это в JSON, поместите ваш массив в json_encode()
вызов.
$array['sections'] = array("content" => array(array("para" => "Hello")));
echo json_encode($array);
выдаст результат в нужном формате