объединить два массива в foreach

В моем скрипте PHP есть следующая ситуация:

foreach( $recent_posts as $recent ) { /* something happens in here */ } 

А также:

 foreach ($thumbnails as $thumbnail) { if ( has_post_thumbnail($thumbnail->ID)) { /* something other happens */ } } 

Я хотел бы объединить эти два предложения foreach вместе. Я видел здесь несколько решений, но для меня ничего не работает.

edit: я хочу сделать что-то вроде этого

echo '<a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '"> '. $recent["post_title"] . get_the_post_thumbnail($thumbnail->ID, 'thumbnail', array('class' => 'beitragimg')).' </a>';

Начиная с PHP 5.3.0 , для этого можно использовать класс MultipleIterator [PHP.net] :

 $a = new MultipleIterator(); $a->attachIterator(new ArrayIterator($recent_posts), 'recent'); $a->attachIterator(new ArrayIterator($thumbnails), 'thumbnail'); foreach ($a as $unit) { // $unit['recent'] // $unit['thumbnail'] if (has_post_thumbnail($unit['thumbnail']->ID)) { /* something other happens */ } } 

Вы можете использовать array_map

 $a = ['red','yello','green'] ; $b = ['apple','banna','mango']; foreach(array_map(null, $a, $b) as $combined) { vprintf("%s %s\n", $combined); } 

Вывод

 red apple yello banna green mango 

Угадав, что вы хотите что-то подобное этому, но это немного зависит от значений ваших переменных.

 foreach( $recent_posts as $key => $recent ) { $thumbnail = $thumbnails[$key]; if( has_post_thumbnail( $thumbnail->ID ) ) { } }