Jeśli mogę to zrobić:różne wyniki dla json_encode() PHP
$new_arr = array(
0 => 'keyboard',
1 => 'mouse',
2 => 'computer'
);
print_r(json_encode($new_arr));
wyjściowa:
[ "klawiatura", "mysz", "komputer"]
Ale powiedz, że pobieram wszystkie wiersze tabeli "produktu" z mojej bazy danych i robię to:
$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));
wyjściowa:
{ "0": "klawiatura", "1": "mysz", "2": "Komputer"}
naprawdę trzeba zachować klucz od array kiedy i json_encode również możesz mi powiedzieć, jak osiągnąć drugie wyjście w pierwszym przykładzie?
Po prostu mam pytanie w prawo: Druga forma wyjściowa jest pożądana, prawda? – vzwick
tak dokładnie chcę zachować klucze tablicy w moim json_encode –
* "Naprawdę muszę zachować klucz tablicy kiedy json_encode ..." * No cóż, technicznie masz. Klucze są takie same w obu przykładach. Ale pierwszy to tablica, a drugi to tylko obiekt z kluczami właściwości składającymi się wyłącznie z cyfr. Jeśli dekodowanie tego JSON-a jest JavaScript, to jest to bardzo subtelna różnica (ponieważ klucze tablicy są łańcuchami w JavaScript - [tak, naprawdę] (http://blog.niftysnippets.org/2011/01/myth-of-arrays. html)). Inne języki mogą się różnić. –