Загрузить следующий элемент массива в викторине PHP

Я создаю небольшую викторину PHP, и у меня есть многомерный массив (в котором хранятся мои вопросы и вопросы), затем я использую rand_array , чтобы выбрать один из массивов и отобразите его на моей странице. После его отображения я использую unset ($ row); , чтобы удалить его из моего многомерного массива , чтобы тот же вопрос никогда не показывался дважды.

Есть три кнопки (для трех ответов), и при нажатии на нее пользователь получает 0, 10 или 20 баллов. Я использовал это, чтобы вернуть очки:

if (isset ($ _ POST ["Answer1"])) {
        $ points = $ points + 20;
        initialQuestions ();
}

Я снова запустил initialQuestions (); , чтобы получить следующий вопрос, но это, очевидно, сбрасывает весь мой массив, как я могу перейти к следующему вопросу с предыдущим элементом, удаленным из массива, в результате чего он будет пустой массив?

Любая помощь приветствуется.

0
nl ja de
Можете ли вы показать скрипт, который отключает значение?
добавлено автор Peon, источник
Что мешает вам хранить ответы на вопросы в сеансе, а затем исключить их? Или наоборот - сохраните возможные вопросы в этом вопросе?
добавлено автор Eugen Rieck, источник
Где хранится массив?
добавлено автор Alepac, источник
Dainis - Это моя функция - pastebin.com/A86NeLWr @EugenRieck Я могу хранить ответы на вопросы в сеансе, это мой следующий шаг, но я не могу загрузить следующий вопрос без перезагрузки массива Alepac - я попытался хранить мой массив вне и внутри моей функции, ни изменить результат
добавлено автор Jamie Gordon, источник

3 ответы

вы можете просто произвольно вытащить вопрос из массива all_question и сохранить этот «использованный» вопрос в сеансе, тогда не имеет значения, что вы делаете в POST, в следующий раз, когда вы вытаскиваете «следующий» вопрос из all_question, вы просто проверьте, видно ли, что он уже сохранен на «использованном» сеансе, если это так, потяните снова, если нет, вы получили то, что хотите.

<?php
session_start();

$all_question = array(
    //put all your question here...
);

//pull a question out
$new_question = pull_question( $all_question );

//save this question to the 'used' session
$_SESSION['used_question'][] = $new_question;

?>
1
добавлено

использовать сращивание с использованием массива вместо того, чтобы его отключить, потому что vallue получает нулевое значение, но ключ остается

0
добавлено

initialQuestions ()? И где ваш массив? использовать initialQuestions ($ question_array) и вернуть массив без текущего вопроса;

Что-то вроде этого

$questions = array('your array');
function initialQuestions($questions) {
//get some question
//remove it from array
return $questions;//return this array
}

тогда

if (isset($_POST["Answer1"])){ $points = $points + 20; $questions = initialQuestions($questions); 

или globalize $ questions array

function initialQuestions() {
global $questions;
//get some question
//remove it from array
}

Но для меня лучше использовать $ _SESSION для хранения вашего массива $ question.

0
добавлено
Первое решение, похоже, не работает в моем скрипте, оно загрузит следующий вопрос, но не удалит другой вопрос из моего массива, а только первый из них удалит проблему. Вы можете увидеть это здесь - pastebin.com/km6Zkar8 . Я попытаюсь сделать это, используя $ _SESSION
добавлено автор Jamie Gordon, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp