Maison >développement back-end >tutoriel php >Pourquoi `json_encode` traite-t-il les tableaux clairsemés différemment en fonction de leur structure ?

Pourquoi `json_encode` traite-t-il les tableaux clairsemés différemment en fonction de leur structure ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 05:34:10742parcourir

Why Does `json_encode` Treat Sparse Arrays Differently Depending on Their Structure?

JSON_ENCODE encode différemment les tableaux clairsemés : objet par rapport au tableau

Lorsque vous travaillez avec des tableaux clairsemés, il est important de comprendre comment se comporte json_encode. Un tableau clairsemé est un tableau qui contient des indices manquants, créant des lacunes dans la séquence numérique.

Le problème

Comme le démontre l'extrait de code fourni, json_encode encode initialement le tableau clairsemé. array $a sous forme de tableau. Cependant, après avoir supprimé un élément à l'aide d'unset, l'appel json_encode suivant produit un objet JSON.

L'explication

JSON n'a aucun moyen de représenter des tableaux avec des indices manquants. En conséquence, json_encode revient à coder des tableaux clairsemés en tant qu'objets JSON lorsqu'il rencontre de telles lacunes.

La solution

Pour éviter ce comportement et garantir que les tableaux clairsemés sont codé de manière cohérente sous forme de tableaux, vous pouvez utiliser array_values($a) avant d'appliquer json_encode. Cette fonction réindexe le tableau, supprimant les espaces et garantissant une sortie cohérente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn