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 ?

Comment encoder un tableau PHP avec des touches numériques non consécutives sous forme de tableau JSON ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-21 12:21:10808parcourir

How to Encode a PHP Array with Non-Consecutive Numeric Keys as a JSON Array?

Résolution de la sortie d'objet JSON à partir d'un tableau numérique en PHP à l'aide de json_encode()

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!

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