Array multidimensionale PHP in JSON

Quindi sto cercando di capire il modo migliore per get i dati della tabella MySql in un arrays PHP multidimensionale o convertire quell'arrays multidimensionale in una string json.

Essenzialmente quello che sto cercando di fare è avere un php include che restituisca la string JSON in modo che possa scorrere attraverso di essa. Ho bisogno di una singola chiave con più valori, quindi non sono sicuro al 100% che sia nella giusta direzione.

Voglio assegnare più valori alla stessa chiave, ad esempio:

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

Penso che non functionrà correttamente? Perché non ho alcun tipo di indice?

Questo non è JSON valido. La struttura che stai cercando sarebbe qualcosa del tipo:

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

Sul lato PHP, avresti bisogno di qualcosa come:

  1. Per each row recuperata da MySQL
    • $arr[$key] = <nuovo arrays>
    • per each pacchetto:
      • aggiungi pacchetto a $arr[$key]
  2. echo out json_encode($arr)

Gli arrays JS hanno una codifica di arrays implicita, a partire dall'indice 0. Quello che hai è un arrays JS perfettamente valido, l'equivalente di aver scritto:

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

Nota che il contenuto dei tuoi sotto oggetti {} NON è valido.

Non dovresti mai MAI build una string JSON a mano. È troppo inaffidabile e facile da incasinare. È semplicemente più semplice utilizzare una struttura dati nativa (arrays / oggetti php), quindi json_encode() . Idem all'altra estremità del process – non decodificare la string manualmente. Converti in una struttura dati nativa (es. json_decode() , JSON.parse() ) e poi JSON.parse() direttamente la struttura nativa.

in sostanza, JSON è un formato di trasmissione, non un formato di manipolazione.