Maison >développement back-end >tutoriel php >Comment encoder un tableau PHP avec des touches numériques non consécutives sous forme de tableau JSON ?
Lors de l'encodage d'un tableau avec des touches numériques à l'aide de la fonction json_encode() en PHP, le résultat est souvent une chaîne d'objet avec des clés plutôt qu'une chaîne de tableau. Cela peut être problématique lorsque l'on s'attend à un format Tableau de tableaux.
Explication du problème :
En JavaScript, les tableaux nécessitent des touches numériques consécutives. json_encode() affichera un objet si les clés du tableau PHP ne sont pas des nombres consécutifs.
Solution :
Pour résoudre ce problème sans utiliser d'expression régulière, nous pouvons utiliser la fonction array_values() pour supprimer les clés du tableau d'origine et les remplacer par une numérotation consécutive de base zéro. Cela garantit que le résultat encodé est une chaîne de tableau.
Exemple :
// Non-consecutive numeric keys in PHP array $array = array( 2 => array("Afghanistan", 32, 13), 4 => array("Albania", 32, 12) ); // Remove original keys with array_values() $out = array_values($array); // Encode the resulting array $json = json_encode($out); // Output: [["Afghanistan", 32, 13], ["Albania", 32, 12]]
En utilisant array_values(), nous obtenons le format Array of Arrays souhaité en JSON et évitez le format objet avec des touches numériques non consécutives.
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!