2017-01-24 4 views
-5

Ich habe dieses Array in PHP-Code. Ich will, dass immer wenn die Seite aufgerufen wird, sollte Wert von ersten Array-Index und wenn nächste Mal zweiten Wert von Array-Index und so weiter ... Welche Änderung könnte ich tun? Momentan druckt es alles, wenn man es Single nennt.Array-Index Inkrement

<html> 
<?php 
$addresses = array('ifcbxespra', 'ifcheqjbmea', 'ifcqiknsa', 'ifcqirtjla', 'ifcwqsrlmn', 'ifclmkmzhz','ifcwdujhgc','ifcihddngh','icffhzudcd','ifchnsqzgs','ifcgssqrhg'); 

foreach ($addresses as &$value) { 
    echo $value ; 
} 
?> 
</html> 
+3

Wie schlagen Sie vor, zu verfolgen, wenn es aufgerufen wird? Wie oft heißt es? Möchten Sie nur erhöhen, wenn derselbe Besucher die Seite aufruft? Oder möchten Sie, dass es zuerst erhöht wird, wenn Benutzer A es ansieht, dann wieder inkrementieren, wenn Benutzer B es sieht, usw. –

+0

Sie haben also nichts unternommen, um Ihre Anforderung selbst zu erfüllen! Also das ist ein _do es für mich_ Frage richtig – RiggsFolly

+0

@cale_b yesss bevor ich array_rand Funktion verwendet, in der es automatisch Zufallszahl aufgerufen wird und drucken, so dass es keine Eindeutigkeit gibt. Ja, ich möchte es 11 mal als Größe des Arrays bezeichnen. und wie Sie gesagt haben, wenn Benutzer A es dann Ifcbxespra, und Wenn Benutzer B nächsten Wert besucht, die ifcheqjbmea ist. – Rocky

Antwort

0

Endlich habe ich dieses Problem mit dem MySQL gelöst. erstellt eine Spalte mit dem gesamten Code. und dann das Skript jedes Mal aufrufen, wenn der Benutzer die Taste drückt. Im Skript hole ich zuerst zuerst raw und drucke diesen Wert und lösche dann das rohe. Jeder Benutzer erhält einen einzigartigen Wert aus der Liste. Und es funktioniert gut.

1

Sie können so etwas wie $_SESSION nutzen und speichern dort die letzte index.

Zum Beispiel:

$array = array('one', 'two', 'three'); 

if (!$_SESSION['nextIndex'] || $_SESSION['nextIndex'] >= count($array)) { 
    $_SESSION['nextIndex'] = 0 
} 

// print the value 
echo $array[$_SESSION['nextIndex']]; 

// increment the nextIndex 
$_SESSION['nextIndex']++; 

Hinweis: Dies wird nur für den gleichen Benutzer arbeiten. Bei jedem erneuten Laden der Seite wird der Array-Index erhöht. Aber wenn Sie einige Benutzer zählen müssen, müssen Sie die Informationen irgendwo auf dem Server speichern, wie eine DB oder sogar eine einfache TXT-Datei.

Schauen Sie sich dieses Beispiel: http://hibbard.eu/how-to-make-a-simple-visitor-counter-using-php/

+0

Dies funktioniert nicht basierend auf dem OP-Kommentar, dass sich dies dahingehend ändern sollte, welcher Benutzer auf die Seite schaut. Wenn Benutzer A aussieht, sollte erster Eintrag sein, dann wenn Benutzer B aussieht, sollte zweiter Eintrag sein usw. $ _SESSION wird nicht über verschiedene Benutzer/Browser gespeichert. –

+0

@cale_b thx, ich habe einen Kommentar hinzugefügt. – webdeb

1

Ich bin mir nicht sicher, ob ich verstanden, was Sie wollen. Aber wenn Sie das erste Array von Wert, wenn die Seite geladen wird einmal drucken möchten, den Wert des zweiten Arrays, wenn die Seite ein weiteres Mal lädt und so weiter, können Sie dies tun:

<?php 
if(!isset($addresses) || empty($addresses)){ //checks if the array is not initialized or if it's empty 
    $addresses = array('ifcbxespra', 'ifcheqjbmea', 'ifcqiknsa', 'ifcqirtjla', 'ifcwqsrlmn', 'ifclmkmzhz','ifcwdujhgc','ifcihddngh','icffhzudcd','ifchnsqzgs','ifcgssqrhg'); 
    echo $addresses[0]; //print the first value 
    array_splice($addresses, 0, 1); //removes the first element of the array and reindexes it 
}else{ 
    echo $addresses[0]; //print the first value 
    array_splice($addresses, 0, 1); //removes the first element of the array and reindexes it 
} 

Die Logik behinds es ist: if das Array existiert bereits und ist nicht leer (es hat Werte), drucke den ersten Wert und entferne es dann, so dass der nächste Wert das nächste Mal der zweite tatsächliche Wert sein wird. Wenn das Array leer ist, definieren Sie es neu, um es erneut zu starten. Sie können nach weiteren Informationen über array_splice() here suchen.

S.S .: Sie müssen PHP's $_SESSION verwenden, um das Array zwischen den Seiten zu speichern.

+0

Dies funktioniert nicht basierend auf dem Kommentar von OP, dass sich dies ändern sollte, unabhängig davon, welcher Benutzer auf die Seite schaut. Wenn Benutzer A aussieht, sollte erster Eintrag sein, dann wenn Benutzer B aussieht, sollte zweiter Eintrag sein usw. $ _SESSION wird nicht über verschiedene Benutzer/Browser gespeichert. –