我的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>';
答案 0 :(得分:4)
从 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 */
}
}
答案 1 :(得分:0)
您可以使用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
答案 2 :(得分:-1)
猜猜你想要类似的东西,但根据你变量的值,这是一个猜测。
foreach( $recent_posts as $key => $recent ) {
$thumbnail = $thumbnails[$key];
if( has_post_thumbnail( $thumbnail->ID ) )
{
}
}