Comment convertir un tableau JSON en chaîne en php

PHPz
Libérer: 2023-04-20 14:43:50
original
744 Les gens l'ont consulté

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 . "}";
}
Copier après la connexion

函数有两个参数。第一个参数$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;
Copier après la connexion

以上代码将输出以下结果:

{
    "name": "PHP",
    "version": "7.3.5",
    "extension": {
        "json": "enabled",
        "curl": "enabled",
        "pdo": "enabled"
    },
    "framework": {
        "name": "Laravel",
        "version": "5.8.18"
    }
}
Copier après la connexion

这是一个符合JSON格式的字符串,它将原来的JSON数组转换为了字符串。

总结:使用上述自制函数json_arr2string()可以很方便地将含有多维数组的JSON数组转换为字符串。如果您在PHP编程中没有遇到过多维数组,那么json_encode()

Voici la fonction pour convertir un tableau JSON en chaîne : 🎜rrreee🎜La fonction a deux paramètres. Le premier paramètre $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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal