2016-04-11 2 views
0

Ich bin auf der Suche nach der besten Praxis zu bestimmen, wenn eine indizierte Zahl innerhalb einer Schleife ändert. Nehmen Sie zum Beispiel diese foreach-Schleife, die den ersten Buchstaben eines Wortes wandelt auf den ASCII-Schlüssel:Auf der Suche nach dem besten Weg zu testen, wenn Schleife ändert Index

<?php foreach($loterms as $key => $loterm) : 
$brand_id = substr($loterm->name,0,1); 
$index = ord($brand_id); 
endforeach; ?> 

Was ich möchte wissen, ist, wenn die Indexänderungen zwischen jedem Durchlauf der Schleife und wenn ja einige Code ausführen. Wenn zum Beispiel die ASCII-Taste von 44 auf 45 wechselt, möchte ich etwas anderes ausgeben.

+0

'$ index' bei jeder Iteration drucken. –

+0

Entschuldigung, ich habe es vielleicht nicht erklärt, ich möchte etwas mehr Code ausführen, wenn der Index um 1 oder mehr zunimmt – rhysclay

+3

Speichere den letzten Index in einer Variablen und vergleiche den aktuellen Index damit. Wenn es sich geändert hat, führen Sie Ihren Code aus und schreiben Sie dann den neuen Index in die Variable. – syck

Antwort

0

Danke für die Hilfe alle. Ich landete Codierung dieses (funktioniert wie ein Zauber):

<?php foreach($loterms as $key => $loterm) : 
$brand_id = substr($loterm->name,0,1); 
          if(ord($brand_id) > $index_temp): 
           echo '<li class="full-width">'.$brand_id.'</li>'; 
          endif; 

          $index_temp = ord($brand_id); 
endforeach; ?> 

Wie @syck wies darauf hin, alles, was ich speichern tun musste, war der Index als Variable am Ende der Schleife dann die Variable mit dem neuen Index vergleichen, am Anfang der nächsten Schleife und wenn es sich ändert, geben Sie meinen gewünschten Code aus.

Verwandte Themen