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;
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 );
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.