2016-08-08 19 views
1

Ich habe nur dieses Bild-Array ($ Bilder) und ich möchte durch diese Bilder durch gegebenen Schlüssel durchlaufen.PHP-Array-Loop-Schlüssel übereinstimmen

$images = array(0=>'image1', 1=>'image2', 2=>'image3'); 

Nehmen wir an, dass es diese Paginierung ist, und wenn ich auf jeder Seite gehen sollte es das Bild Taste mit Seitennummer und senden Sie das Bild anzeigen lassen. Wenn der angegebene Bildschlüssel nicht existiert, sollte er das erste Bild zurückgeben. Ich habe die Seitenzahl in einer Sitzung und das ist es, was ich bis jetzt geschafft habe.

Dies wird durch Bilder durchlaufen, wie ich durch die Seiten gehe, aber ich will es wie unten gezeigt arbeiten.

Page 1> Taste 0, Seite 2> Taste 1, Seite 3> Taste 2, Seite 4> Taste 0, Seite 5> Taste 1, Seite 6> Taste 2

Ein Beispiel: Wenn ich gehe auf Seite 5 sollte es das Bild 2 im Bildfeld zurückgeben.

Ich hoffe, dass dies sinnvoll ist und würde Ihre Hilfe zu schätzen wissen.

Danke.

Heman

+0

Verwenden '%' didvide und den Rest überprüfen. –

+0

Ich denke, das ist ein wenig verwirrend, da ich nicht verstehe, wie Ihr System funktioniert ... – Snickbrack

Antwort

0

Es gibt einige Probleme mit Ihrem Code. Man kehrt $key wenn $key - 1 existiert, während es $key - 1 sein sollte:

$key = (isset($images[$key - 1])) ? $key - 1 : ($key > $count ? $key - $count - 1 : 0); 
3
$total = count($images); 
$remainder = $page%$total; 
echo $key = ($remainder == 1) ? 0 : (($remainder == 2) ? 1 : 2); 
+0

Dies funktioniert, wenn Array-Anzahl gleich 3 ist. Benötigen Sie ein wenig Modifikation, um auf dynamischen Array zu arbeiten. Gute Eins. Tnx –

1

Try this:

($key > $count) ? $key = $key%$count : $key = $key-1; 
+0

Das sieht gut aus. Das einzige Problem ist, dass es in einem Szenario, in dem $ key% $ count = 0 ist, negativ wird. Beispiel: '6% 3-1 = -1' –

+0

@Hemann du hast recht, ich habe es bearbeitet, und ich denke, das sollte funktionieren, Ich brauche -1 nicht, wenn es wahr ist: d. Vielen Dank! –

-1

dies auf jedem Szenario funktionieren würde.

$images = array(0=>'image1', 1=>'image2', 2=>'image3'); 
$count = count($images); 
$remainder = $key%$count; 
$remainder = ($remainder == 0) ? $count-1 : ($remainder - 1); 
($key > $count) ? $key = $remainder : $key = $key-1; 

Besonderer Dank geht an @ M.I und @ user1234 und auch dank alle anderen für Anregungen :)