首頁  >  文章  >  後端開發  >  php怎麼將JSON數組轉換為字串

php怎麼將JSON數組轉換為字串

PHPz
PHPz原創
2023-04-20 13:49:21745瀏覽

在PHP程式設計中,常會用到JSON格式的數據,而將JSON陣列轉換為字串是常見問題。下面我們將介紹如何在PHP中將JSON陣列轉換為字串。

PHP提供了一個非常方便的函數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()函數已經足夠使用了。

以上是php怎麼將JSON數組轉換為字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn