Ver Mensaje Individual
  #22 (permalink)  
Antiguo 03/07/2013, 07:45
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: foreach que no imprima la primera

Cita:
Iniciado por txandy Ver Mensaje
While -> si no sabes si vas a recorrer todo el elemento, ni siquiera una vez
do-While -> si al menos vas a recorrer el elemento una vez y no sabes si hasta el final
for, foreach -> Si tienes que recorrer el elemento entero

En este caso se va a recorrer el elemento, en este caso un array, hasta el final, entonces la mejor opción es un FOR o FOREACH, al ser un array asociativo yo me tiraría por el FOREACH
JUSTAMENTE no tienes que recorrer el enteramente el array / lista .. pues lo mas acertado seria descartar el primer elemento (si lo hay)

Por eso seria un WHILE excepto que siguiendo con el uso de iteradores (que no es imprescindible) crearas un noRewindIterator que no se puede devolver descartando el primer elemento puede luego iterar el resto sin tener hacer preguntas IF dentro luego. Ahi si puedes usar un FOREACH ...

Como dicen mas arriba.... TAMPOCO seria un caso para usar FOR puesto que solo funcionaria con indices numericos:

Código PHP:
<?php

// Tengo mi array de objetos....
$o1 = new StdClass
$o2 = new StdClass
$o3 = new StdClass

$o1->photo ='perro.jpg';
$o2->photo ='gato.jpg';
$o3->photo ='caballo.jpg';

$items_gallery= array($o1,$o2,$o3);

/* Solucion con FOR sin hacer IF cada ciclado */
$count count ($items_gallery);

// solo para arrays no-asociativos:
if ($count>=1)
    for (
$i=1;$i<$count;$i++)
    {        
        
$img $items_gallery[$i];
        echo 
'< a ... '.$img->photo.'/>';
    }
__________________
Salu2!

Última edición por Italico76; 03/07/2013 a las 08:37