2017-01-24 2 views
-5

У меня этот массив в php-коде. Я хочу, чтобы всякий раз, когда страница вызывается, она должна печатать значение первого индекса массива и когда следующее второе значение индекса массива и т. Д. ... какую модификацию я мог бы сделать? пока он печатает все, когда его называют единым временем.Индекс индекса массива

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

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

Как вы предлагаете отслеживать, когда это называется? Сколько раз это называется? Вы хотите только увеличивать, если один и тот же посетитель вызывает страницу? Или вы хотите, чтобы он увеличивался до первого, если пользователь A просматривает его, а затем увеличивает его, если пользователь B просматривает его и т. Д. –

+0

Итак, вы не пытались сделать так, чтобы когда-либо попытаться выполнить свое требование самостоятельно! Так что это вопрос _do для меня вопроса – RiggsFolly

+0

@cale_b yesss, прежде чем я использовал функцию array_rand, в которой автоматически вызывается случайное число и печатается, поэтому нет уникальности. yess Я хочу назвать это 11 раз как размер массива. и, как вы сказали, когда пользователь A просматривает его, тогда ifcbxespra, и когда пользователь B посещает следующее значение, которое является ifcheqjbmea. – Rocky

ответ

0

Наконец-то я решил эту проблему с MySQL. создал столбец со всем кодом. а затем вызывать скрипт каждый раз, когда пользователь нажимает кнопку. Сначала в скрипте я беру сначала raw и печатаю это значение, а затем удаляю это raw. поэтому каждый раз пользователь получает уникальное значение из списка кода. И он работает нормально.

1

Вы можете использовать что-то вроде $_SESSION и хранить там последний index.

Например:

$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']++; 

Примечание: Это будет работать только для одного пользователя. Каждая перезагрузка страницы увеличивает индекс массива. Но если вам нужен подсчет нескольких пользователей, вам нужно хранить информацию где-то на сервере, например, в БД или даже в простом txt-файле.

Заканчивать этот пример: http://hibbard.eu/how-to-make-a-simple-visitor-counter-using-php/

+0

Это не будет работать на основе комментария OP, что это должно изменить аспекты, которые пользователь просматривает на странице. Если пользователь A выглядит, должен быть первым, то, если пользователь B выглядит, должен быть второй записи и т. Д. $ _SESSION не будет храниться у разных пользователей/браузеров. –

+0

@cale_b thx, я добавил комментарий. – webdeb

1

Я не уверен, если я понял, что вы хотите. Но если вы хотите, чтобы напечатать значение первого массива при загрузке страницы один раз, значение второго массива при загрузке страницы в другой раз, и так далее, вы можете сделать это:

<?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 
} 

Логика задом это: если массив уже существует и не пуст (имеет значения), напечатайте первое значение и затем удалите его, поэтому в следующий раз первое значение будет вторым фактическим значением. Когда массив пуст, переопределите его, чтобы начать заново.

Вы можете найти дополнительную информацию о array_splice() here.

P.S .: вы должны использовать PHP's $_SESSION, чтобы сохранить массив между страницами.

+0

Это не будет работать на основе комментария OP, что это должно изменить аспекты, которые пользователь просматривает на странице. Если пользователь A выглядит, должен быть первым, то, если пользователь B выглядит, должен быть второй записи и т. Д. $ _SESSION не будет храниться у разных пользователей/браузеров. –