Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php foreach多维数组获取信息_Php_Arrays_Foreach - Fatal编程技术网

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
)