[SOLVED] PHP jeder, next, prev, etc....

Beitrag November 4th, 2009, 6:51 am

Im Versuch, re-Programm eine Klasse, dass jemand schrieb, die mit Legacy-Treiber verwenden, wenn ()-Schleifen durchlaufen zu arbeiten hat. Ich kann nicht scheinen, um das letzte Element, um alle Daten zurück erhalten, nachdem er vorübergehend erlischt nach dem Ende des Arrays.

Schrieb ich an einen Iterator-Funktion, die wie folgt aussieht:

PHP Code: [ Download ] [ 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. ?>


Dann auf das aktuelle Element zu sammeln, damit ich die Daten in eine beliebige Funktion innerhalb der Schleife verwenden, schrieb ich eine Funktion wie folgt aus:
PHP Code: [ Download ] [ 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. ?>


Und während jeder Iteration current_fruit kann () mehrmals aufgerufen werden. Es funktioniert, bis die Menge der Früchte, bekomme ich keine Daten. Das Problem ist jetzt, wird die Schleife macht eigentlich genug Iterationen, aber das letzte Element hat keine Daten. Ich weiß, die jeder ()-Funktion sendet den Zeiger vorübergehend aus dem Ende des Feldes auf der letzten Iteration, aber prev () sollte wieder verweisen Sie auf das letzte Element, nicht wahr?
Why no, no I'm not.
  • Anonymous
  • Bot
  • No Avatar
  • Registriert: 25 Feb 2008
  • Beiträge: ?
  • Loc: Ozzuland
  • Status: Online

Beitrag November 4th, 2009, 6:51 am

Beitrag November 4th, 2009, 8:50 am

Ich landete mit end (), wenn prev () false zurückgegeben. Ich denke, wenn es geht aus dem Array, können Sie nicht verwenden, prev (), müssen Sie das gesamte Array bis zum Ende reset ()-Element.
Why no, no I'm not.
  • joebert
  • Weathered
  • Genius
  • Benutzeravatar
  • Registriert: Feb 10, 2004
  • Beiträge: 11882
  • Loc: Clearwater, FL
  • Status: Offline

Beitrag November 4th, 2009, 9:37 am

Theres einen Witz über Früchte gehen Off the Deep End dort irgendwo. :D

Haben Sie jemals die SPL-Iterator Klassen?
http://www.php.net/manual/en/class.arrayiterator.php
Why yes, yes I am.

Beitrag November 9th, 2009, 1:06 am

Aww crap I wish I had checked meine E-Mail, konnte ich diese verwendet haben. Ich war mit einem mehrdimensionalen Array-Typ Iteration und ich am Ende mit, um es zu einem Datentyp zu speichern, I wouldnt der hatte mit diesem.

Thanks man, wird dies in der Zukunft nützlich sein.
Why no, no I'm not.

Buchung Informationen

  • Beiträge in diesem Thema: 4 Beiträge
  • Mitglieder in diesem Forum: spork und 182 Gäste
  • Du darfst keine neuen Themen in diesem Forum erstellen.
  • Du darfst keine Antworten zu Themen in diesem Forum erstellen.
  • Du darfst deine Beiträge in diesem Forum nicht ändern.
  • Du darfst deine Beiträge in diesem Forum nicht löschen.
  • Du darfst keine Dateianhänge in diesem Forum erstellen.
 
 

© Unmelted Enterprises 1998-2009. Angetrieben durch phpBB © 2001-2009 phpBB Group.