Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie ein JSON-Array in PHP in einen String

So konvertieren Sie ein JSON-Array in PHP in einen String

PHPz
PHPzOriginal
2023-04-20 13:49:21744Durchsuche

Bei der PHP-Programmierung werden häufig Daten im JSON-Format verwendet, und die Konvertierung von JSON-Arrays in Strings ist ein häufiges Problem. Im Folgenden stellen wir vor, wie man ein JSON-Array in PHP in einen String konvertiert.

PHP bietet eine sehr praktische Funktion json_encode(), die ein PHP-Array in eine JSON-Formatzeichenfolge konvertieren kann. Wenn das PHP-Array jedoch mehrdimensionale Arrays enthält, kann uns die Funktion json_encode() nicht zufriedenstellen. Daher müssen wir eine hausgemachte Funktion verwenden. 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()

Hier ist die Funktion zum Konvertieren eines JSON-Arrays in einen String: 🎜rrreee🎜Die Funktion hat zwei Parameter. Der erste Parameter $arr ist das JSON-Array, das in einen String umgewandelt werden soll. Der zweite Parameter mit dem Standardwert 0 wird zur Verarbeitung mehrdimensionaler Arrays verwendet. 🎜🎜Die Funktion erstellt zunächst eine leere String-Variable $str und eine String-Variable $indstr für die Einrückung und überprüft dann jedes Element im Array. Verarbeiten Sie mehrdimensionale Arrays, indem Sie sich selbst rekursiv aufrufen, bis alle Elemente verarbeitet wurden. 🎜🎜Löschen Sie abschließend die letzten beiden Zeichen der Zeichenfolgenvariablen $str (löschen Sie also das letzte Komma und die angrenzenden Leerzeichen) und fügen Sie geschweifte Klammern und Zeilenumbrüche hinzu, um die endgültige Zeichenfolge zurückzugeben. 🎜🎜Hier ist ein Beispiel, das zeigt, wie Sie mit der obigen Funktion ein JSON-Array mit mehrdimensionalen Arrays in einen String konvertieren: 🎜rrreee🎜Der obige Code gibt das folgende Ergebnis aus: 🎜rrreee🎜Dies ist ein String, der konform ist Das JSON-Format, das das Original sein wird. Das JSON-Array wird in einen String konvertiert. 🎜🎜Zusammenfassung: Mit der oben genannten selbst erstellten Funktion json_arr2string() können JSON-Arrays, die mehrdimensionale Arrays enthalten, problemlos in Strings konvertiert werden. Wenn Sie in der PHP-Programmierung noch nicht auf mehrdimensionale Arrays gestoßen sind, ist die Funktion json_encode() ausreichend. 🎜

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein JSON-Array in PHP in einen String. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn