Maison > Article > développement back-end > Comment convertir un tableau JSON en chaîne en php
Dans la programmation PHP, les données au format JSON sont souvent utilisées et la conversion de tableaux JSON en chaînes est un problème courant. Ci-dessous, nous expliquerons comment convertir un tableau JSON en chaîne en PHP.
PHP fournit une fonction très pratique json_encode()
, qui peut convertir un tableau PHP en une chaîne au format JSON. Cependant, lorsque le tableau PHP contient des tableaux multidimensionnels, la fonction json_encode()
ne peut pas nous satisfaire. Par conséquent, nous devons utiliser une fonction maison. json_encode()
,可以将一个PHP数组转换为JSON格式的字符串。然而,当PHP数组中包含多维数组时,json_encode()
函数就不能使我们满意了。因此,我们需要使用一个自制的函数。
下面是将JSON数组转换为字符串的函数:
function json_arr2string($arr, $indent=0){ $str = ""; $indstr = ""; for ($i=0; $i<$indent; $i++){ $indstr .= " "; } foreach ($arr as $key => $val){ if (is_array($val)){ $str .= $indstr . '"' . $key . '": {' . "\n" . json_arr2string($val, $indent+1) . $indstr . "},\n"; } else{ $str .= $indstr . '"' . $key . '": "' . $val . '",' . "\n"; } } return "{" . "\n" . substr($str, 0, -2) . "\n" . $indstr . "}"; }
函数有两个参数。第一个参数$arr
是要转换为字符串的JSON数组,第二个参数缺省值为0,是用来处理多维数组的。
函数首先创建一个空字符串变量$str
和一个用来缩进的字符串变量$indstr
,然后检查数组中的每一个元素。通过递归调用自身,处理多维数组,直到所有元素都被处理完毕为止。
最后,将字符串变量$str
的最后两个字符删除(即删除最后一个逗号和与其相邻的空格),并添加花括号和换行符,返回最终字符串。
下面是一个例子,演示如何使用上述函数将含有多维数组的JSON数组转换为字符串:
$json_arr = array( "name" => "PHP", "version" => "7.3.5", "extension" => array( "json" => "enabled", "curl" => "enabled", "pdo" => "enabled" ), "framework" => array( "name" => "Laravel", "version" => "5.8.18" ) ); $json_str = json_arr2string($json_arr); echo $json_str;
以上代码将输出以下结果:
{ "name": "PHP", "version": "7.3.5", "extension": { "json": "enabled", "curl": "enabled", "pdo": "enabled" }, "framework": { "name": "Laravel", "version": "5.8.18" } }
这是一个符合JSON格式的字符串,它将原来的JSON数组转换为了字符串。
总结:使用上述自制函数json_arr2string()
可以很方便地将含有多维数组的JSON数组转换为字符串。如果您在PHP编程中没有遇到过多维数组,那么json_encode()
$arr
est le tableau JSON à convertir en chaîne. Le deuxième paramètre a une valeur par défaut de 0 et est utilisé pour traiter des tableaux multidimensionnels. 🎜🎜La fonction crée d'abord une variable de chaîne vide $str
et une variable de chaîne $indstr
pour l'indentation, puis vérifie chaque élément du tableau. Traitez les tableaux multidimensionnels en s'appelant de manière récursive jusqu'à ce que tous les éléments aient été traités. 🎜🎜Enfin, supprimez les deux derniers caractères de la variable chaîne $str
(c'est-à-dire supprimez la dernière virgule et les espaces adjacents), et ajoutez des accolades et des nouvelles lignes pour renvoyer la chaîne finale. 🎜🎜Voici un exemple qui montre comment utiliser la fonction ci-dessus pour convertir un tableau JSON contenant des tableaux multidimensionnels en une chaîne : 🎜rrreee🎜Le code ci-dessus affichera le résultat suivant : 🎜rrreee🎜Il s'agit d'une chaîne conforme à le format JSON et sera l'original. Le tableau JSON est converti en chaîne. 🎜🎜Résumé : L'utilisation de la fonction maison json_arr2string()
mentionnée ci-dessus peut facilement convertir des tableaux JSON contenant des tableaux multidimensionnels en chaînes. Si vous n'avez pas rencontré de tableaux multidimensionnels en programmation PHP, la fonction json_encode()
est suffisante. 🎜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!