php foreach多维数组获取信息
我从数组中获取信息时遇到一些问题。我需要获得每个关键点的所有信息,但我无法获得 我有这个阵列:php foreach多维数组获取信息,php,arrays,foreach,Php,Arrays,Foreach,我从数组中获取信息时遇到一些问题。我需要获得每个关键点的所有信息,但我无法获得 我有这个阵列: Array( [en] => Array( [a] => Array( [0] => [C][C] [1] => [L][L][C] ) [b] => Array( [0] => Tackle [1] => RazorLeaf ) [c] => Array(
Array(
[en] => Array(
[a] => Array(
[0] => [C][C]
[1] => [L][L][C]
) [b] => Array(
[0] => Tackle
[1] => RazorLeaf
) [c] => Array(
[0] =>
[1] =>
) [d] => Array(
[0] => 20
[1] => 50
)
) [pt] => Array(
[a] => Array(
[0] => [C][C]
) [b] => Array(
[0] => Pontapé
) [c] => Array(
[0] =>
) [d] => Array(
[0] => 20
)
)
)
在foreach(或多个)中,我需要获得[en][a][0]
、[en][b][0]
、[en][c][0]
和[en][d][0]
以将数据插入数据库。
在下一个循环中,应该得到[en][a][1]
,[en][b][1]
,[en][c][1]
和[en][d][1]
。
最后但并非最不重要的一点是,从[en]
更改为[pt]
后,它应该得到[pt][a][0]
,[pt][b][0]
,[pt][c][0]
我的做法:
foreach($result as $language => $index){
foreach($index as $attinfo => $index2){
//echo "$language <br/> $attinfo <br/>";
foreach($index2 as $valorfinal => $index3){
echo $index[$attinfo][$valorfinal][$index3]."<br/>";
}
}
}
foreach($result作为$language=>$index){
foreach($attinfo=>$index2){
//echo“$language
$attinfo
”;
foreach($index2为$valorfinal=>$index3){
echo$index[$attinfo][$valorfinal][$index3]。“
”;
}
}
}
我的方法似乎没有达到预期效果。有人能给我引路吗?
我想将每个键保存在vars中,然后将它们保存在每个foreach循环的数据库中。谢谢。我已经重新组织了循环,并更正了最终数据访问中使用的索引(当它是一个值时,您将使用
[$index3]
作为索引)
这将输出
Array
(
[0] => [C][C]
[1] => Tackle
[2] =>
[3] => 20
)
Array
(
[0] => [L][L][C]
[1] => RazorLeaf
[2] =>
[3] => 50
)
Array
(
[0] => [C][C]
[1] => Pontapé
[2] =>
[3] => 20
)
要在输出中包含该语言
$output = [];
foreach($result as $language => $index){
foreach($index['a'] as $key => $value){
$data = [];
foreach ( $index as $key1 => $value1) {
$data[] = $index[$key1][$key];
}
$data[] = $language;
$output[] = $data;
}
}
print_r($output);
Array
(
[0] => [C][C]
[1] => Tackle
[2] =>
[3] => 20
[4] => en
)
给出(部分输出)
用户nested
foreach()
,我在另一个问题上得到了这个问题的答案,这个答案适用于任何维度大小的数组,“迭代多维关联数组PHP中的每个键和值”:@holdoff饥饿您的方法很有趣。谢谢分享:)你的方法是正确的,但它把我弄糊涂了。所以现在我没有数组中的第一个键[en]
或[pt]
。我也需要那个值来将它插入数据库。另外,在您的方法中,使用foreach,我应该如何逐个访问所有信息?要获取第一个键,请使用foreach($result as$language=>$index){
,并且$language
应该是[en]
value。我不确定我应该如何逐个访问所有信息的意思我得到了答案,在询问之前我也得到了同样的结果,但我也希望将其作为键[4]
。与其将语言放在每个值包之前,不如将其放在[0][1][2][3][4]中
-其中4是语言。这可能吗?我已经更新了答案(最后一个代码段)(将语言添加到$data[]=$language;
)它在相同的“数组”中创建所有内容,而不是创建尽可能多的实例:数组([0]=>[C][C][1]=>攻克[2]=>[3]=>20[4]=>en[5]=>[L][C][6]=>RazorLeaf[7]=>8]=>50[9]=>en[10]=>C][C][11]=>Pontapé[12]=>13]=>20[14]=>pt
Array
(
[0] => [C][C]
[1] => Tackle
[2] =>
[3] => 20
[4] => en
)