se faccio questo:risultati diversi per json_encode() PHP
$new_arr = array(
0 => 'keyboard',
1 => 'mouse',
2 => 'computer'
);
print_r(json_encode($new_arr));
uscita:
[ "tastiera", "mouse", "computer"]
Ma diciamo che prendo tutte le righe della tabella "prodotto" dal mio database e faccio questo:
$product_with_id_map = array();
foreach($query as $result) {
$product_with_id_map[$result->id] = $result->name;
}
print_r(json_encode($product_with_id_map));
uscita:
{ "0": "Tastiera", "1": "mouse", "2": "computer"}
ho davvero bisogno di conservare la chiave del array quando json_encode puoi anche dirmi come ottenere il secondo output nel primo esempio?
Proprio così ho la tua domanda giusta: la seconda forma di output è quella desiderata, giusto? – vzwick
sì esattamente voglio conservare le chiavi dell'array nel mio json_encode –
* "Ho davvero bisogno di conservare la chiave dell'array quando ho json_encode ..." * Bene, tecnicamente tu hai. I tasti sono gli stessi in entrambi gli esempi. Ma il primo è un array, l'altro è solo un oggetto con chiavi di proprietà costituite interamente da cifre. Se il linguaggio che decodifica questo JSON è JavaScript, è una differenza molto sottile (poiché le chiavi dell'array sono stringhe in JavaScript - [sì, davvero] (http://blog.niftysnippets.org/2011/01/myth-of-arrays. html)). Altre lingue possono variare. –