php foreach многомерный массив получения информации - PullRequest
0 голосов
/ 03 октября 2018

У меня проблемы с получением информации из массива.Мне нужно получить всю информацию для каждого ключа, но я не могу ее получить.

У меня есть этот массив:

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 (или нескольких) я 'm нужно получить [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.Спасибо.

1 Ответ

0 голосов
/ 03 октября 2018

Я реорганизовал циклы и исправил индексы, используемые при окончательном доступе к данным (вы используете [$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
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...