Собрать массив с помощью 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":[["Арсений","Петров"],["Игорь","Семёнов"]]}
→ Ссылка