2011-07-27 10 views
5
<?php 
$data=array('1','2','3','4','5','6','7','8','9','10','11'); 
foreach($data as $key=> $element){ 
    if($key % 2 != 0){ 
     echo $element.'<br />'; 
    } 
    echo '<hr />'; 
} 
?> 

php foreach como clave, ¿cómo hacer cada dos números como un grupo?php foreach como clave, cada dos números como un grupo

quiero de salida:

1,2 
_____ 
3,4 
_____ 
5,6 
_____ 
7,8 
_____ 
9,10 
_____ 
11 

Respuesta

22

Tenga una mirada en la función array_chunk().

En el caso de que le utilizar de esta manera:

foreach(array_chunk($data, 2) as $values) { 
    echo implode(',', $values)."\n"; 
} 

Durante la última iteración $values tendrá solamente un elemento de lo que si va a tener acceso a los elementos directamente a través de su índice recuerda utilizar para comprobar count() el conteo de elementos del conjunto.

+1

gran función, gracias. –

+0

¡Impresionante! ¡Esto me ayudó por completo hoy! ¡¡Gracias!! – JCBiggar

7

Su foreach() está bien pero desea imprimir cada elemento, no solo cada uno. Tampoco quiere la regla horizontal cada vez, solo cada par. Por lo tanto:

<?php 
$data=array('1','2','3','4','5','6','7','8','9','10','11'); 
foreach($data as $key=> $element){ 
    echo $element; 
    if($key % 2 != 0){ 
     echo "<br/><hr />"; 
    } 
    else { 
     echo ","; 
    } 
} 
?> 
Cuestiones relacionadas