web-dev-qa-db-fra.com

Créer un tableau à partir d'un tableau

J'ai une série d'images attachées à un article et je peux les sortir ensuite parfaitement:

1 2 3 4 5 6 7

Comment obtenir trois images à la fois à partir du tableau, puis passer d'une image à une autre pour créer les tableaux suivants de trois images:

1 2 3

2 3 4

3 4 5

4 5 6

etc?

Voici mon code:

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
warm__tape

Vous pouvez diviser votre tableau en utilisant les méthodes suivantes

$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 );
2
Tunji

Vous pouvez utiliser array_chunk pour une solution plus élégante.

Exemple:

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

$chunks = array_chunk( $array, 3 );

La valeur de $chunks dans l'exemple ci-dessus serait:

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
        )

)

Court et doux sans avoir besoin de boucles.

1
EHerman