-1

私のPHPスクリプトには次のような状況があります:

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

と:

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

foreachこの 2 つのステートメントを 1 つにまとめたいと思います。ここでいくつかの解決策を見てきましたが、実際には何もうまくいきません。

編集:私はこのようなことをしたい

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>';

4

3 に答える 3

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 */ 
    }
}
于 2013-06-11T11:45:54.320 に答える
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
于 2013-06-11T11:51:00.547 に答える
-1

これに似たものが欲しいと思いますが、変数の値によっては少し推測になります。

foreach( $recent_posts as $key => $recent ) {
    $thumbnail = $thumbnails[$key];

    if( has_post_thumbnail( $thumbnail->ID ) )
    {

    }
}
于 2013-06-11T11:45:12.150 に答える