php - 使用 PHP 循环遍历多维数组
问题描述
我正在尝试学习 php 并与 API 交谈以检索我的 Destiny 2 部落的信息。我已检索到所需的所有信息,并使用以下格式构建了一个新数组:
Array
(
[displayname] => Senaxx
[membershipId] => 4611686018428643772
[characterdetails] => Array
(
[0] => Array
(
[2305843009260824684] => Array
(
[characterlevel] => 30
[light] => 384
[datelastplayed] => 2018-08-19T13:23:27Z
[minutesplayed] => 14901
[racehash] => 898834093
[genderhash] => 3111576190
[emblempath] => /common/destiny2_content/icons/2b6160e0f21e748cd996b404771a850c.jpg
[emblemhash] => 10493725
)
)
[1] => Array
(
[2305843009260824685] => Array
(
[characterlevel] => 30
[light] => 394
[datelastplayed] => 2018-08-18T20:47:09Z
[minutesplayed] => 9647
[racehash] => 2803282938
[genderhash] => 3111576190
[emblempath] => /common/destiny2_content/icons/dcfe74b7a343dd28bd45eee4ea59a1f7.jpg
[emblemhash] => 3860733295
)
)
[2] => Array
(
[2305843009260824686] => Array
(
[characterlevel] => 30
[light] => 394
[datelastplayed] => 2018-08-26T00:15:50Z
[minutesplayed] => 1802
[racehash] => 2803282938
[genderhash] => 3111576190
[emblempath] => /common/destiny2_content/icons/dcfe74b7a343dd28bd45eee4ea59a1f7.jpg
[emblemhash] => 3860733295
)
)
)
)
Array
(
[displayname] => base1981
[membershipId] => 4611686018433367605
[characterdetails] => Array
(
[0] => Array
(
[2305843009265162076] => Array
(
[characterlevel] => 30
[light] => 358
[datelastplayed] => 2018-08-15T11:58:46Z
[minutesplayed] => 13732
[racehash] => 2803282938
[genderhash] => 3111576190
[emblempath] => /common/destiny2_content/icons/9d512efea06e54c1768d434e53510092.jpg
[emblemhash] => 1291068173
)
)
[1] => Array
(
[2305843009265162077] => Array
(
[characterlevel] => 1
[light] => 100
[datelastplayed] => 2017-09-06T14:25:35Z
[minutesplayed] => 0
[racehash] => 898834093
[genderhash] => 2204441813
[emblempath] => /common/destiny2_content/icons/911791e90f955fc637398ea88aba74b7.jpg
[emblemhash] => 1907674137
)
)
[2] => Array
(
[2305843009265162078] => Array
(
[characterlevel] => 30
[light] => 350
[datelastplayed] => 2018-05-27T12:07:38Z
[minutesplayed] => 1658
[racehash] => 3887404748
[genderhash] => 3111576190
[emblempath] => /common/destiny2_content/icons/da0d265bb9e4473c97ba56dc7602ca73.jpg
[emblemhash] => 3941202506
)
)
)
)
这些只是 2 个玩家阵列。我的整个代码有 8 个。但对于这个例子,我认为其中 2 个就足够了。
我的目标是遍历数组并检索每个显示名称的所有玩家信息。
所以我从完美的开始:
foreach($claninfo as $clanmember)
{
echo $clanmember['membershipId'];
}
可悲的是,仅抓住角色细节对我来说是行不通的。mee 的问题似乎是有一个未知数字的额外 characterId。
foreach($claninfo as $clanmember)
{
echo $clanmember['membershipId'];
foreach($claninfo->characterdetails as $characterdetails)
{
echo $characterdetails-> light;
}
}
最终目标是创建一个包含一些信息的表格:
<table>
<tbody>
<tr>
<td>Displayname</td>
<td>Playtime</td>
<td>Character 1</td>
<td>Character 2</td>
<td>Character 3</td>
</tr>
<tr>
<td>Senaxx</td>
<td> </td>
<td>light 384</td>
<td>light 394</td>
<td>light 394</td>
</tr>
<tr>
<td>Base1981</td>
<td> </td>
<td>light 358</td>
<td>light 100</td>
<td>light 350</td>
</tr>
</tbody>
</table>
解决方案
直到灯的关联数组键是: $claninfo[<some key or index>]['characterdetails'][<Array Index>][<character id>]['light']
因此,要访问光,您需要使用foreach 3 次:
从部落信息中获取部落成员
迭代 $clanmember['characterdetails']
摆脱字符ID
foreach($claninfo as $clanmember) { echo $clanmember['membershipId']; foreach($clanmember['characterdetails'] as $characterArray) { foreach($characterArray as $characterid => $characterdetails) { // You can access $characterid in this block echo $characterdetails['light']; } } }
推荐阅读
- javascript - 屏幕右边缘的Material-ui AppBar和Tab
- javascript - 如何在有行限制的 10 个字符后添加换行符
- javascript - 有没有办法在 React 中滚动到 div 或容器的底部而不将整个页面滚动到底部?
- java - 检查数组在函数中不起作用。(爪哇)
- javascript - React Native Drawer Navigation 总是自动关闭
- firebase - 删除 SwiftUI 后 Firebase Firestore 不更新 UI
- database - 如果名称在 Laravel 中重复,如何添加数量?
- c++ - DLL 函数参数类型不完整导致结果不正确
- node.js - Kubernetes 多容器通信
- android - 如何在android中将顶部手柄添加到底部?