Задать вопрос
@Dealaxer

PHP Как прогнать два массива JSON через один Foreach?

Приветствую всех!

Есть два разных массива, которые никак не похожи друг на друга. Их прогоняю через foreach:
foreach($arr['value'] as $key=>$val){
//Выполнение начального кода

                foreach($arr2['value'] as $key=>$val2){
                //выполнение кода во втором цикле
                }
//Выполнение последующего кода
}


Не могу понять как сделать так, чтобы циклы работали поочередно, то есть:
В 1 проходе/итерации 1 цикла, дочерний/второй цикл совершил также 1 проход, приостановился и после того как 1 цикл начнет совершать 2 проход, дочерний цикл начал также 2 проход с того места где остановился и так до того, пока 1 цикл не сделает все проходы.

Кто-нибудь такое делал?
Подскажите как такое осуществить.

Заранее благодарю.
  • Вопрос задан
  • 454 просмотра
Подписаться 1 Сложный Комментировать
Решение пользователя romy4 К ответам на вопрос (3)
romy4
@romy4
Exception handler
Есть несколько вариантов.
1. выдернуть все ключи из первого и из второго в массивы. а дальше банальным перебором
$keys1 = подставьте тут сами;)
$keys2 = и тут ;)
for ( $k=0; $k < count($keys1) && $k < count($keys2); $k++)
{
   $value_from_arr1 = $arr['value'][$keys1[$k]];
   $value_from_arr2 = $arr2['value'][$keys2[$k]];
   // do stuff
}

например вот
а ещё есть штука "генераторы". в итоге вы получаете то же самое, но синтаксически красивее.
function from_arr(&$arr)
{
 //
}

while ( ($value1 = from_arr($arr1))!==null && ($value2 = from_arr($arr2))!==null)
{
   // do_stuff
}

вот как-то так. усложнять более можно, но нет необходимости.
Ответ написан