Многомерный массив PHP для JSON

Поэтому я пытаюсь найти лучший способ получить данные таблицы MySql в многомерном массиве PHP или преобразовать этот многомерный массив в строку json.

По сути, что я пытаюсь сделать, это включить php, который возвращает строку JSON, чтобы я мог проходить через нее. Мне нужен один ключ с несколькими значениями, поэтому я не уверен на 100%, чтобы im возглавил в правильном направлении.

Я хочу присвоить несколько значений одному и тому же ключу, например:

[{"key1": "package1", "package2", "package3"}, {"key2": "package1", "package2", "package3", "package4"}] 

Я думаю, что это не сработает правильно? Потому что у меня нет каких-либо индексов?

Это недействительно JSON. Структура, которую вы ищете, будет примерно такой:

 [ {"key1": ["package1", "package2", "package3"]}, {"key2": ["package1", "package2", "package3", "package4"}] ^ An array as the value to the key "key1", "key2", etc.. ] 

На стороне PHP вам понадобится что-то вроде:

  1. Для каждой строки, полученной из MySQL
    • $arr[$key] = <новый массив>
    • для каждой упаковки:
      • добавьте пакет в $arr[$key]
  2. echo out json_encode($arr)

В массивах JS имеется неявный массив, начиная с индекса 0. У вас есть вполне допустимый массив JS, эквивалентный написанию:

 var x = []; // create new empty array x[0] = {"key1": .... }; // first object x[1] = {"key2": ....} // second object 

Обратите внимание, что содержимое ваших {} под-объектов НЕ является допустимым.

Вы никогда не должны НИКОГДА не строили строку JSON вручную. Это слишком ненадежно и легко испортить. Просто использовать собственную структуру данных (php-массивы / объекты), а затем json_encode() . То же самое на другом конце процесса – не расшифровывайте строку вручную. Преобразуйте в собственную структуру данных (например, json_decode() , JSON.parse() ), а затем напрямую JSON.parse() собственную структуру.

по сути, JSON – это формат передачи, а не формат манипуляции.