You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:00:05