Create an array from an array

时间:2016-12-23 作者:warm__tape

我已经将一组图像附加到帖子上,并可以按顺序输出它们:

1 2 3 4 5 6 7

如何一次从阵列中获取三个图像,然后向前移动一个图像以创建以下三个图像的阵列:

1 2 3

2 3 4

3 4 5

4 5 6

等等

这是我的代码:

global $rental;

$images = get_children( array(
    \'post_parent\' => $rental_id,
    \'post_status\' => \'inherit\',
    \'post_type\' => \'attachment\',
    \'post_mime_type\' => \'image\',
    \'order\' => \'ASC\',
    \'orderby\' => \'menu_order ID\'
) );

if ($images) :

    $i = 0;

    foreach ($images as $attachment_id => $image) :

        $i++;

        $img_url = wp_get_attachment_url( $image->ID );

        ?>

        <div class="item <?php if($i == 1){echo \' active\';} ?> class="<?php echo $i; ?>"">
            <img src="<?php echo $img_url; ?>" title="<?php echo $i; ?>" />
        </div>

    <?php endforeach; ?>
<?php endif;

2 个回复
最合适的回答,由SO网友:Tunji 整理而成

可以使用以下方法拆分阵列

$array = array(1,2,3,4,5,6);
$number_of_elements = 3;

$count = count( $array );
$split = array();
for ( $i = 0; $i <= $count - 1; $i++ ) {
    $slices = array_slice( $array, $i , $number_of_elements);
    if ( count( $slices ) != $number_of_elements )
        break;

    $split[] = $slices;
}

print_r( $split );

SO网友:EHerman

您可以使用array_chunk 以获得更优雅的解决方案。

示例:

$array = array( 1, 2, 3, 4, 5, 6, 7, 8, 9 );

$chunks = array_chunk( $array, 3 );
的价值$chunks 在上述示例中:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)
短而甜,无需任何环。