[SOLVED] PHP cada uno, siguiente, anterior, etc...

  • PolishHurricane
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Feb 17, 2005
  • Mensajes: 1585
  • Status: Offline

Nota Noviembre 4th, 2009, 6:51 am

Im que intenta re-programar una clase que alguien escribió que tiene que trabajar con los controladores de herencia, mientras que el uso de () para recorrer los bucles. Me parece que no puede obtener el último elemento a devolver cualquier información después de que temporalmente se va del final de la matriz.

Acabé por hacer una función de repetidor que se ve así:

PHP Código: [ Select ]
<?php
public function iterate()
{
 if(each($this->data['fruits']) !== FALSE)
 {
 return TRUE;
 }
 else
 {
 reset($this->data['fruits']);
 return FALSE;
 }
}
?>
  1. <?php
  2. public function iterate()
  3. {
  4.  if(each($this->data['fruits']) !== FALSE)
  5.  {
  6.  return TRUE;
  7.  }
  8.  else
  9.  {
  10.  reset($this->data['fruits']);
  11.  return FALSE;
  12.  }
  13. }
  14. ?>


Luego de recoger el elemento actual para poder utilizar los datos en cualquier función dentro del ciclo, le escribí una función como ésta:
PHP Código: [ Select ]
<?php
public function current_fruit()
{
$fruit_array = prev($this->data['fruits']);
next($this->data['fruits']);
return $fruit_array;
}
?>
  1. <?php
  2. public function current_fruit()
  3. {
  4. $fruit_array = prev($this->data['fruits']);
  5. next($this->data['fruits']);
  6. return $fruit_array;
  7. }
  8. ?>


Y en cada iteración current_fruit () puede ser llamado varias veces. Funciona, hasta que el conjunto de frutas, no consigo ningún dato. Ahora el problema es que el bucle correctamente hace iteraciones suficiente, pero el último elemento no tiene datos. Me doy cuenta de cada función () envía el puntero temporalmente fuera de la final de la matriz en la última iteración, pero anterior () debe volver a punto, hasta el último elemento, ¿no?
There's no place like 127.0.0.1, badass part is now it's ::1
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Noviembre 4th, 2009, 6:51 am

  • PolishHurricane
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Feb 17, 2005
  • Mensajes: 1585
  • Status: Offline

Nota Noviembre 4th, 2009, 8:50 am

Terminé usando final () si el anterior () devuelve false. Supongo que si se sale de la matriz, no se puede utilizar prev (), usted tiene que restablecer toda la matriz hasta el final () elemento.
There's no place like 127.0.0.1, badass part is now it's ::1
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Noviembre 4th, 2009, 9:37 am

Theres una broma acerca de las frutas que sale los fines de profundidad, en alguna parte. :D

¿Ha utilizado alguna vez las clases Iterator de SPL?
http://www.php.net/manual/en/class.arrayiterator.php
Strong with this one, the sudo is.
  • PolishHurricane
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Feb 17, 2005
  • Mensajes: 1585
  • Status: Offline

Nota Noviembre 9th, 2009, 1:06 am

Crap Aww Ojalá hubiera comprobado mi correo electrónico, podría haber utilizado este. Yo estaba usando multi-dimensional de tipo matriz de iteración y terminé teniendo que salvar a un tipo de datos, yo tenía que wouldnt de la presente.

Gracias hombre, esto será útil en el futuro.
There's no place like 127.0.0.1, badass part is now it's ::1

Publicar Información

  • Total de mensajes en este tema: 4 mensajes
  • Usuarios navegando por este Foro: Bigwebmaster, Kurthead+1 y 145 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC