PHP は、Web アプリケーションの開発に関して非常に人気のあるプログラミング言語です。 PHP の配列は、データを操作するときに不可欠なツールです。ただし、PHP 配列を他の言語に渡す必要がある場合、またはネットワーク経由で渡す必要がある場合は、配列をエンコード形式に変換する必要があります。この記事では、PHP が配列を JSON、XML、およびシリアル化形式に変換する方法について説明します。
JSON (JavaScript Object Notation) は、データ交換のための軽量のデータ交換形式です。読み書きが簡単で、Web アプリケーション間のデータ転送によく使用されます。 PHP には、PHP 配列を JSON 形式に簡単に変換できる json_encode() および json_decode() 関数が用意されており、JSON 形式のデータを PHP 配列に変換することもできます。
以下は、PHP 配列を JSON 形式に変換するサンプル コードです:
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); $json = json_encode($data); echo $json;
出力結果は次のとおりです:
{"name":"John","age":30,"city":"New York"}
この例では、最初に、年齢、都市の 3 つの要素を持つ名前 PHP 配列 $data を含む配列。次に、 json_encode() 関数を使用して JSON 形式に変換します。出力結果は、配列要素を含む JSON 文字列です。
JSON 形式のデータを PHP 配列に変換するには、 json_decode() 関数を使用します。以下は、JSON 形式のデータを PHP 配列に変換するサンプル コードです。
$json = '{"name":"John","age":30,"city":"New York"}'; $data = json_decode($json, true); print_r($data);
出力結果は次のとおりです。
Array ( [name] => John [age] => 30 [city] => New York )
この例では、最初に JSON 文字列を定義します。次に、 json_decode() 関数を使用して PHP 配列に変換し、2 番目のパラメーターを true に設定して JSON 形式を連想配列に変換します。最後に、print_r() 関数を使用して、PHP 配列の内容を出力します。
XML (Extensible Markup Language) は、独自のマークアップ言語を定義するための標準です。これは HTML マークアップ言語に非常に似ていますが、主にデータ交換、データ ストレージ、および Web サービスに使用されます。 SimpleXML 拡張機能は PHP で提供されており、これを使用して PHP 配列を XML 形式に変換したり、XML 形式のデータを PHP 配列に変換したりすることもできます。
以下は、PHP 配列を XML 形式に変換するサンプル コードです:
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); $xml = new SimpleXMLElement('<root/>'); array_walk_recursive($data, array($xml, 'addChild')); echo $xml->asXML();
出力結果は次のとおりです:
<?xml version="1.0"?> <root> <name>John</name> <age>30</age> <city>New York</city> </root>
この例では、最初に、年齢、都市の 3 つの要素を持つ名前 PHP 配列 $data を含む配列。次に、SimpleXMLElement クラスを使用して、root という名前の XML 要素を作成します。 $data 配列内の各要素は、array_walk_recursive() 関数を使用して XML ツリーに追加されます。最後に、asXML() 関数を使用して XML ツリーを文字列に出力します。
XML 形式のデータを PHP 配列に変換するには、SimpleXML 拡張機能によって提供される simplexml_load_string() または simplexml_load_file() 関数を使用できます。以下は、simplexml_load_string() 関数を使用して XML 文字列を PHP 配列に変換するサンプル コードです。
$xml = '<?xml version="1.0"?> <root> <name>John</name> <age>30</age> <city>New York</city> </root>'; $data = simplexml_load_string($xml); echo ''; print_r($data); echo '';
出力結果は次のとおりです。
SimpleXMLElement Object ( [name] => John [age] => 30 [city] => New York )
この例では、最初にXML文字列。次に、simplexml_load_string() 関数を使用してそれを PHP の SimpleXMLElement オブジェクトに変換し、最後に print_r() 関数を使用して PHP 配列の内容を出力します。
JSON 形式と XML 形式に加えて、PHP には、PHP 配列を文字列に変換する方法、つまり配列シーケンスを変更する方法も用意されています。シリアル化は、プログラム間でデータを受け渡すために、PHP 変数 (プリミティブ データ型、配列、オブジェクト) を文字列に変換するプロセスです。 PHP は、PHP 変数のシリアル化と逆シリアル化を実装するために、serialize() 関数と unserialize() 関数を提供します。
以下は、PHP 配列を文字列にシリアル化するサンプル コードです:
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); $serialized = serialize($data); echo $serialized;
出力は次のとおりです:
a:3:{s:4:"name";s:4:"John";s:3:"age";i:30;s:4:"city";s:8:"New York";}
この例では、最初に PHP を定義します。名前、年齢、都市の 3 つの要素を含む配列 $data。次に、serialize() 関数を使用して文字列にシリアル化します。出力結果は、シリアル化された配列要素を含む文字列です。
シリアル化された文字列を PHP 配列に逆シリアル化するには、unserialize() 関数を使用できます。以下は、シリアル化された文字列を PHP 配列に逆シリアル化するコードの例です。
$serialized = 'a:3:{s:4:"name";s:4:"John";s:3:"age";i:30;s:4:"city";s:8:"New York";}'; $data = unserialize($serialized); print_r($data);
出力結果は次のとおりです。
Array ( [name] => John [age] => 30 [city] => New York )
この例では、最初に文字列の後のシリアル化を定義します。次に、unserialize() 関数を使用して PHP 配列に逆シリアル化し、print_r() 関数を使用して PHP 配列の内容を出力します。
概要
この記事では、PHP が配列を JSON、XML、およびシリアル化形式に変換する方法について説明しました。これらの形式はデータ交換に使用される一般的な形式の 1 つであり、異なるプラットフォームや言語間でのデータ転送が容易になります。実際のニーズに応じて、データ処理に適した形式を選択する必要があります。
以上がPHPで配列をエンコーディングに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。