我的PHP脚本中有以下情况:
foreach( $recent_posts as $recent ) {
/* something happens in here */
}
:
foreach ($thumbnails as $thumbnail) {
if ( has_post_thumbnail($thumbnail->ID)) {
/* something other happens */
}
}
我想把这两个foreach
语句组合在一起。我在这里看过一些解决方案,但没有一个对我真正有效。
编辑:我想做这样的事情
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 ) )
{
}
}