获取PHP Foreach循环中所有数组键的特定属性



我正在使用从XML文件转换的多维PHP数组,并且正在努力从所有键名中获取特定属性(我不知道所有键的名称,但它们都具有相同的属性)

"$player_stats"中的每个Key在数组中的结构如下:

[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>

如果我理解正确的话,$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>";
}

相关内容

  • 没有找到相关文章

最新更新