Encodage de tableaux PHP en tant que tableaux JSON avec json_encode
En PHP, la fonction json_encode est utilisée pour convertir les structures de données PHP en leurs homologues JSON. Par défaut, les tableaux PHP sont codés sous forme d'objets JSON. Cependant, il existe des scénarios dans lesquels l'encodage d'un tableau en tant que tableau JSON est nécessaire.
Énoncé du problème
Considérez le tableau PHP ci-dessous :
$array = [ [ "id" => 0, "name" => "name1", "short_name" => "n1" ], [ "id" => 2, "name" => "name2", "short_name" => "n2" ] ];
Lors de l'appel de json_encode sur ce tableau, le JSON résultant est un objet :
{ "0": { "id": 0, "name": "name1", "short_name": "n1" }, "2": { "id": 2, "name": "name2", "short_name": "n2" } }
C'est pas le résultat souhaité puisque nous voulons plutôt un tableau JSON.
Solution
Pour encoder un tableau PHP en tant que tableau JSON, le tableau doit être séquentiel, c'est-à-dire ses clés doivent être des entiers consécutifs commençant à 0. Dans l'exemple fourni, les clés du tableau sont 0 et 2, ce qui n'est pas séquentiel.
Pour faire en sorte que tableau séquentiel, nous pouvons utiliser la fonction array_values :
echo json_encode(array_values($array));
Cela réindexera le tableau de manière séquentielle, produisant la sortie JSON suivante :
[ { "id": 0, "name": "name1", "short_name": "n1" }, { "id": 2, "name": "name2", "short_name": "n2" } ]
En garantissant que le tableau est séquentiel, json_encode l'encode correctement sous forme de tableau JSON.
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!