【发布时间】:2019-12-14 10:18:37
【问题描述】:
我正在努力摆脱这个嵌套的 foreach 循环。
如果您查看我的数据,我正在尝试进入团队信息数组,找出团队 ID 号,一旦我知道该 ID 号,我想跳出团队数组并进入该特定 ID(团队)的 stats 数组,以便我可以获取每个统计信息。
我使用的数据每周都会根据每个团队的排名进行更新,因此 ID 是确定您正在查找的团队的唯一方法。
到目前为止,我有以下代码并且可以获得团队 ID 号,但就像我说的那样,我想用 ID 号打破团队数组并进入该特定 ID 的 stats 数组。此外,这些数据适用于每个 NFL 球队,而且非常长,所以我只发布了我可以为数组发布的内容,以便您了解我的想法,我的 foreach 循环如下所示。
非常感谢任何帮助!!!
数组:
Array(
[overallteamstandings] => Array
(
[lastUpdatedOn] => 2019-12-13 4:03:05 AM
[teamstandingsentry] => Array
(
[0] => Array
(
[team] => Array
(
[ID] => 56
[City] => Baltimore
[Name] => Ravens
[Abbreviation] => BAL
)
[rank] => 1
[stats] => Array
(
[GamesPlayed] => Array
(
[@abbreviation] => G
[#text] => 14
)
[PassAttempts] => Array
(
[@category] => Passing
[@abbreviation] => Att
[#text] => 384
)
[PassCompletions] => Array
(
[@category] => Passing
[@abbreviation] => Comp
[#text] => 255
)
[PassPct] => Array
(
[@category] => Passing
[@abbreviation] => Pct
[#text] => 66.4
)
[PassGrossYards] => Array
(
[@category] => Passing
[@abbreviation] => Yds
[#text] => 3016
)
Foreach 循环:
foreach ($response as $overallteamstandings => $b) {
foreach ($b['teamstandingsentry'] as $key => $d) {
//if ($key == '9'){
foreach ($d as $cat => $info) {
if ($cat == 'team') {
foreach ($info as $c => $v) {
if ($c == 'ID') {
echo $v;
if ($v == '59') {
//break 4;
}
}
}
}
if ($cat == 'stats') {
foreach ($info as $category => $stats) {
if ($category == 'Wins') {
foreach ($stats as $val => $value) {
if ($val == '#text') {
echo $value . "-";
}
}
}
if ($category == 'Losses') {
foreach ($stats as $val => $value) {
if ($val == '#text') {
echo $value;
}
}
}
}
}
}
//}
}
}
【问题讨论】:
标签: php multidimensional-array foreach