我在从数组中获取信息时遇到了一些麻烦。我需要获取每个关键依据的所有信息,但我无法获取。
我有这个数组:
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]
和[pt][d][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/>";
}
}
}
我的方法似乎无法按预期工作。有人可以指导我吗? 我想将每个键保存在vars中,然后在每个foreach循环中将它们保存在数据库中。谢谢。
答案 0 :(得分:3)
我已经重新组织了循环,并更正了最终数据访问中使用的索引(当您使用[$index3]
作为索引时,它是一个值)...
foreach($result as $index){
foreach($index['a'] as $key => $value){
$data = [];
foreach ( $index as $key1 => $value1) {
$data[] = $index[$key1][$key];
}
print_r($data);
}
}
这输出...
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
)