0

XMLファイルから変換された多次元PHP配列を使用していて、すべてのキー名から特定の属性を取得するのに苦労しています(すべてのキーの名前はわかりませんが、すべて同じ属性を持っています。 )。

「$player_stats」内の各キーは、配列内で次のように構成されています。

[RandomKeyName] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [assists] => 0.10
                [rebounds] => 8
                [operator] => >
                [overall] => 1.45
            )

    )

私は以下のようなことを達成しようとしています。$ key => $ valueを使用しているときに、キーから属性を取得できませんか?

foreach ($player_stats as $key => $value) {

    $rebounds = $key->rebounds;
    $assists = $key->assists;

    echo "$key has $rebounds Rebounds and $assists Assists. <br>";
}

この例では$keyは機能しますが、取得しようとした属性は機能しません。キー名を知らなくてもすべてのキーの特定の属性を取得するためのヒントやポインタは素晴らしいでしょう、ありがとう!

編集:

私が取得しようとしているXMLの一部:次の主要なオブジェクト。

<Player_Stats>
  <RandomKeyName1 assists="0.04" rebounds="9" operator="&gt;" overall="0.78" />
  <RandomKeyName2 assists="0.04" rebounds="4" operator="&gt;" overall="2.07" />
  <RandomKeyName3 assists="0.04" rebounds="1" operator="&gt;" overall="3.76" />
  <RandomKeyName4 assists="0.04" rebounds="10" operator="&gt;" overall="0.06" />
</Player_Stats>
4

1 に答える 1

0

私があなたを正しく理解していれば、$valueはSimpleXMLElementオブジェクトです。SimpleXMLElement :: attributesを使用して属性を取得できます。これは、別のforeachで反復処理できます。

これは次のようになります(私はこれを自分でテストしていませんが)。

foreach ($player_stats as $xmlKey => $xmlElement) {

    foreach ($xmlElement->attributes() as $attrKey => $value) {

        if ($attrKey === 'rebounds')
            $rebounds = $value;

        if ($attrKey === 'assists')
            $assists = $value;

    }
    echo "$xmlKey has $rebounds Rebounds and $assists Assists. <br>";
}
于 2013-03-26T03:43:31.807 に答える