ホームページ バックエンド開発 PHPの問題 PHPでJSON配列を文字列に変換する方法

PHPでJSON配列を文字列に変換する方法

Apr 20, 2023 pm 01:49 PM

PHP プログラミングでは、JSON 形式のデータがよく使用され、JSON 配列を文字列に変換することが一般的な問題になります。以下では、PHP で JSON 配列を文字列に変換する方法を紹介します。

PHP には、PHP 配列を JSON 形式の文字列に変換できる非常に便利な関数 json_encode() が用意されています。ただし、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 . "}";
}
ログイン後にコピー

この関数には 2 つのパラメーターがあります。最初のパラメータ $arr は文字列に変換される JSON 配列です。2 番目のパラメータのデフォルト値は 0 で、多次元配列の処理に使用されます。

関数は、まず空の文字列変数 $str とインデントに使用される文字列変数 $indstr を作成し、次に配列内の各要素をチェックします。すべての要素が処理されるまで再帰的に多次元配列を呼び出して、多次元配列を処理します。

最後に、文字列変数 $str の最後の 2 文字を削除し (つまり、最後のコンマとそれに隣接するスペースを削除し)、中括弧と改行を追加して、最後の文字列。

次の例は、上記の関数を使用して、多次元配列を含む 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPアレイの重複排除のためのベストプラクティスは何ですか PHPアレイの重複排除のためのベストプラクティスは何ですか Mar 03, 2025 pm 04:41 PM

PHPアレイの重複排除のためのベストプラクティスは何ですか

PHPアレイの重複排除は、キー名の一意性を利用できますか? PHPアレイの重複排除は、キー名の一意性を利用できますか? Mar 03, 2025 pm 04:51 PM

PHPアレイの重複排除は、キー名の一意性を利用できますか?

最新のPHPコーディング基準とベストプラクティスは何ですか? 最新のPHPコーディング基準とベストプラクティスは何ですか? Mar 10, 2025 pm 06:16 PM

最新のPHPコーディング基準とベストプラクティスは何ですか?

PHP拡張機能とPECLを使用するにはどうすればよいですか? PHP拡張機能とPECLを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:12 PM

PHP拡張機能とPECLを使用するにはどうすればよいですか?

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? Mar 10, 2025 pm 06:15 PM

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? Mar 03, 2025 pm 04:47 PM

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか?

PHPアレイの重複排除のための最適化手法は何ですか PHPアレイの重複排除のための最適化手法は何ですか Mar 03, 2025 pm 04:50 PM

PHPアレイの重複排除のための最適化手法は何ですか

リフレクションを使用してPHPコードを分析および操作する方法は? リフレクションを使用してPHPコードを分析および操作する方法は? Mar 10, 2025 pm 06:12 PM

リフレクションを使用してPHPコードを分析および操作する方法は?

See all articles