Собрать массив с помощью PHP
У меня есть цикл, который заполняет $jsonData:
foreach($result as &$item)
{
$jsonData = [$item["name"], $item["surname"]];
echo json_encode($jsonData);
}
Выходит это:
["name", "surname"]["name", "surname"]["name", "surname"]
А как получить это?:
{"items": [["name", "surname"],["name", "surname"],["name", "surname"]]}
Ответы (2 шт):
Автор решения: 3xcepts
→ Ссылка
Сделать предопределение ключа items, это то, куда ты будешь писать.
Например в цикле foreach исправь на это:
$jsonData['items'] = ....
Автор решения: Meow
→ Ссылка
Предлагаю отказаться от цикла и сделать нечто подобное:
$array['items'] = [
['name1', 'surname1'],
['name2', 'surname2'],
['name3', 'surname3']
];
echo json_encode($array);
// Выведет: {"items":[["name1","surname1"],["name2","surname2"],["name3","surname3"]]}
Или так, если name и surname это ключи вложенных массивов:
$array = [
[
'name' => 'Арсений',
'surname' => 'Петров'
],
[
'name' => 'Игорь',
'surname' => 'Семёнов'
]
];
// Сбросим ключи у вложенных массивов
$array = array_map('array_values', $array);
$jsonData = json_encode(
['items' => $array],
JSON_UNESCAPED_UNICODE
);
echo $jsonData;
// Выведет: {"items":[["Арсений","Петров"],["Игорь","Семёнов"]]}