ホームページ > バックエンド開発 > PHPチュートリアル > 多次元 PHP 配列を SimpleXML オブジェクトに効率的に変換するにはどうすればよいですか?

多次元 PHP 配列を SimpleXML オブジェクトに効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-18 21:54:14
オリジナル
970 人が閲覧しました

How can I efficiently convert a multi-dimensional PHP array into a SimpleXML object?

PHP での配列の SimpleXML への変換

PHP で XML データを操作する場合、作業を容易にするために配列を SimpleXML オブジェクトに変換する必要がある場合があります。処理と操作。

配列を XML に変換する関数変換

多次元配列を SimpleXML オブジェクトに変換するために使用できる PHP 関数を次に示します。

function array_to_xml( $data, &$xml_data ) {
    foreach( $data as $key => $value ) {
        if( is_array($value) ) {
            if( is_numeric($key) ){
                $key = 'item'.$key; //dealing with <0/>..<n/> issues
            }
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
     }
}
ログイン後にコピー

使用例

次の配列を考えてみましょう:

$data = array('total_stud' => 500,
    'student' => array(
        0 => array(
            'id' => 1,
            'name' => 'abc',
            'address' => array(
                'city' => 'Pune',
                'zip' => '411006'
            )
        ),
        1 => array(
            'id' => 2,
            'name' => 'xyz',
            'address' => array(
                'city' => 'Mumbai',
                'zip' => '400906'
            )
        )
    )
);
ログイン後にコピー

この配列を次のように変換するにはXML では、SimpleXMLElement オブジェクトを作成できます:

$xml_data = new SimpleXMLElement('<?xml version="1.0"?><student_info></student_info>');
ログイン後にコピー

次に、array_to_xml 関数を呼び出します:

array_to_xml($data, $xml_data);
ログイン後にコピー

これにより、次の XML が生成されます:

<?xml version="1.0"?>
<student_info>
    <total_stud>500</total_stud>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Pune</city>
            <zip>411006</zip>
        </address>
    </student>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Mumbai</city>
            <zip>400906</zip>
        </address>
    </student>
</student_info>
ログイン後にコピー

その後、必要に応じて、生成された XML を保存または処理できます。

以上が多次元 PHP 配列を SimpleXML オブジェクトに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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