2

XMLファイルから作成した配列内の特定の層のキー/値を取得しようとすると困惑します。Print_R()の配列の一部は次のとおりです。

SimpleXMLElement Object
(
Array
    (
        [category] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [settings] => maximum
                    )

                [cat_1] => 5.21
                [cat_2] => 5.05
                [cat_3] => 19.36
                [cat_4] => 21.97
                [cat_5] => 12.17
            )

    )

)

「cat_1、cat_2、cat_3 ..」キーを取得して、それらを独自の配列に配置し、他の用途に使用できるようにしようとしています。print_r($ array)を実行できますが、これを実行しようとすると、次のようになります。

foreach ($array->category as $key => $val) {
$new_array[$key]= "$val";

}

$array->categoryはそのリストをターゲットにしていないようです。XMLファイルの「SimpleXMLElementオブジェクト」は、私が通常配列を使用する方法の邪魔になっているようです。誰かが私がそれらのcat_1etsに到達する方法を知っていますか?リスト?

4

2 に答える 2

1

は配列では$array->categoryなくオブジェクトであり、プロパティであることに注意してください。それらはすべて公開されているため、次を使用するだけです。cat_*

$new_array = get_object_vars($array->category);
于 2012-12-20T04:57:44.973 に答える
0

を使用して simpleXML オブジェクトを配列に変換する必要があります

$array = json_decode(json_encode((array) $simplexmlob)), 1);

その後$array['category']、他のことに使用します。foreach ループを使用する必要はありません。

于 2012-12-20T06:08:01.090 に答える