PHP技术求助:如何获取并输出多维数组中的游戏武器ID
解决PHP中遍历数组时获取武器ID(键名)的问题
嘿,我明白你现在的困扰啦!作为PHP新手,刚接触数组遍历的时候确实容易在键名获取上卡壳。你说用key($sword)没成功,大概率是因为你的foreach循环只遍历了数组里的值,没同时拿到对应的键名(也就是你说的武器ID,比如Short Sword)。
正确的遍历方式:同时获取键名和值
PHP的foreach支持同时遍历数组的键和值,语法是这样的:
foreach ($array as $key => $value) { // 这里$key就是数组的键,$value是对应的值 }
针对你的武器数组,我们来写个具体的例子:
假设你的$item_swords数组结构大概是这样的:
$item_swords = [ "Short Sword" => [ "Attribute Values" => "攻击+10", "Price" => 50 ], "Middle Sword" => [ "Attribute Values" => "攻击+20", "Price" => 100 ], "Long Sword" => [ "Attribute Values" => "攻击+30", "Price" => 150 ] ];
那你可以这样遍历,就能轻松拿到每个武器的ID(键名):
foreach ($item_swords as $weaponId => $weaponDetails) { echo "<h3>武器ID:{$weaponId}</h3>"; echo "<p>属性值:{$weaponDetails['Attribute Values']}</p>"; echo "<p>价格:{$weaponDetails['Price']}金币</p>"; echo "<hr>"; }
为什么key($sword)没成功?
如果之前你的foreach是这么写的:
foreach ($item_swords as $sword) { echo key($sword); // 这里的$sword是子数组,key()会取子数组的第一个键,也就是"Attribute Values",不是你要的武器ID }
这时候$sword是数组里的子元素(比如["Attribute Values" => "...", "Price" => ...]),key($sword)取的是这个子数组的键,自然不是你想要的武器ID啦。
用上面的键值对遍历方式,就能直接拿到Short Sword这类武器ID啦,试试吧!
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

