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 サイトの他の関連記事を参照してください。