ホームページ > バックエンド開発 > PHPの問題 > PHPで配列をエンコーディングに変換する方法

PHPで配列をエンコーディングに変換する方法

PHPz
リリース: 2023-04-25 10:06:49
オリジナル
514 人が閲覧しました

PHP は、Web アプリケーションの開発に関して非常に人気のあるプログラミング言語です。 PHP の配列は、データを操作するときに不可欠なツールです。ただし、PHP 配列を他の言語に渡す必要がある場合、またはネットワーク経由で渡す必要がある場合は、配列をエンコード形式に変換する必要があります。この記事では、PHP が配列を JSON、XML、およびシリアル化形式に変換する方法について説明します。

  1. 配列を JSON 形式に変換する

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 配列の内容を出力します。

  1. 配列を XML 形式に変換する

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 配列の内容を出力します。

  1. 配列をシリアル化された形式に変換する

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート