这可能重复,但我找不到anwser看起来很烦人的主题。
我有一个数组,女巫看起来像这样:
win = app.window(title=name_sup)
win.Part.Click()
我想回应一下他们所持有的物品类别(武器,饮料),类型(剑,水等)。
我尝试了一个常规的foreach,所以他们回应数组。
$itemx=
[
'Weapons'=>[
'Sword'=> [
'Name' => 'Lurker',
'Value' => '12',
'Made' => 'Acient'
],
'Shield'=> [
'Name' => 'Obi',
'Value' => '22',
'Made' => 'Acient'
],
'Warhammer'=> [
'Name' => 'Clotch',
'Value' => '124',
'Made' => 'Acient'
]
],
'Drinks'=>[
'Water'=> [
'Name' => 'Clean-water',
'Value' => '1',
'Made' => 'Acient'
],
'Wine'=> [
'Name' => 'Soff',
'Value' => '5',
'Made' => 'Acient'
],
'Vodka'=> [
'Name' => 'Laudur',
'Value' => '7',
'Made' => 'Acient'
]
]
];
所以我想我可以从数组中选择。
function getAllCategories()
{
foreach ($this->_prop as $cate)
{
echo $cate;
foreach ($cate as $type)
{
echo $type;
}
}
}
但是他们什么都没回应,我不明白我怎么能打印出我想要的那些价值。
答案 0 :(得分:2)
您需要在每个foreach()
中同时获取索引和值(作为数组),这样您就可以通过维度继续进入":
function getAllCategories()
{
foreach ($this->_prop as $cate => $items)
{
echo $cate."<br>";
foreach ($items as $type => $values)
{
echo $type."<br>";
}
echo "<br>";
}
}
/* result
Weapons
Sword
Shield
Warhammer
Drinks
Water
Wine
Vodka
*/
现在,在第一级,$cate
是每个元素的索引,$items
是包含下一级别的数组。
然后$values
是一个包含数组最后一层的数组。如果你添加更多级别,你可以继续以相同的方式进行。