Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
1

Проверка Правильного Ответа

31.01.2016, 18:35. Просмотров 869. Ответов 31
Метки нет (Все метки)

Как мне вытащить

ячейку [a_correct] => 1 из массива по ячейке [a_id] => 10

PHP
1
2
3
4
5
6
7
8
9
foreach ($_SESSION['arr_answer'][ $_SESSION['rand_key'] ] as $key => $rowl)
    {
 
        foreach ($rowl as $key_1 =>  $value) {
            echo '</br>'.$key_1 . ' - ' .$value.'</br>';
        }
                
 
    }
Пробовал перебирать массив но вытащить не могу его.

Или как еще можно проверить верно ли ответили на вопрос.

КОД
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------Выбор Случайного Ключа из Массива--------------------
//---------------Если Случайный Ключ Выбран, Выводить его до тех пора пока не будет дан ответ или истечет таймер
if(empty($_SESSION['rand_key'])){
 
$_SESSION['rand_key'] = array_rand($_SESSION['arr_answer'], 1);
 
}else{
        echo "Случайный вопрос из массива уже выбран!";
}
 
//---------------Перебор Массива с вопросами ,  формируем форму ---------------- 
    foreach ($_SESSION['arr_answer'][ $_SESSION['rand_key'] ] as $key => $row)
    {
 
                $quest  = $row['q_quest'];
                $hidden = '<input type="hidden" name="quest" value="'.$row['q_id'].'">'.$end_line;
                $input .= '<button name="answer" value ="'.$row['a_id'].'"> '.$row['a_answer'].' </button>'.$end_line;  
                
 
    }
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
 
<h2><?php echo $quest;?></h2>
<form action="action.php" method = "POST">
<?php echo $hidden.$input;?>
 
</body>
</html>
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2016, 18:35
Ответы с готовыми решениями:

Проверка на отказ ответа сервера
Всем привет! Я написал парсер, и иногда при его работе, я получаю сообщение о том. что сервер не...

Игра "Угадай картинку" проверка ответа
Есть картинка и 4 кнопки с ответами, не могу понять как проверить правильный ответ, идеи пропали......

Как создать тест без правильного ответа, для сбора информации(ответа)
Как создать тест без правильного ответа, для сбора информации(ответа). К примеру мне нужно создать...

Выбор правильного ответа
/*делаю код который мог бы при нажатии на определённый элемент менять его цвет, и тем самым...

тест на VB c выбором правильного ответа
Есть тест на VB c выбором правильного ответа и подсчетом баллов. Как сделать что бы каждый вопрос...

31
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 18:36  [ТС] 2
Проверка Правильного  Ответа
0
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 18:40 3
если надо сделать из ключа переменную, то extract() в помощь.
PHP
1
2
3
$arr = array([a_correct] => 1, .......)
extract($arr);
echo $a_correct;//1
и проверяйте, сколько надо.
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 18:47  [ТС] 4
Пифагор, интересная функция, но мне кажется она не даст результата.

Я плохо объяснил скорее всего суть.
мы генерируем такую форму
Проверка Правильного  Ответа


При ответе у нас отправляется value="и какая кнопка была нажата"

В обработчике нужно как то проверить верный ли это был ответ или нет без запроса к БД.

У нас есть массив
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Array
(
    [0] => Array
        (
            [q_id] => 2
            [q_quest] => Сколько будет 3+3?
            [a_id] => 10
            [a_answer] => Шесть
            [a_correct] => 1
        )
 
    [1] => Array
        (
            [q_id] => 2
            [q_quest] => Сколько будет 3+3?
            [a_id] => 30
            [a_answer] => Семнадцать
            [a_correct] => 0
        )
 
    [2] => Array
        (
            [q_id] => 2
            [q_quest] => Сколько будет 3+3?
            [a_id] => 9
            [a_answer] => Четыре
            [a_correct] => 0
        )
 
    [3] => Array
        (
            [q_id] => 2
            [q_quest] => Сколько будет 3+3?
            [a_id] => 7
            [a_answer] => Семь
            [a_correct] => 0
        )
 
)
поле [a_correct] => 1 служит указателем что этот ответ верный.

Вот как мне сделать проверку
0
31.01.2016, 18:47
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 18:50 5
1 - верно, 0 - неверно. Верно?))
ну вот значение переменной (в прошлом элемента массива) $a_correct и будет указателем.
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 18:53  [ТС] 6
Пифагор,ой не что то я наплел тут, не понимаю)
0
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 18:55 7
Цитирую:
Эта функция используется для импорта переменных из массива в текущую символьную таблицу. Она берёт ассоциативный массив в качестве параметра var_array и трактует его ключи как имена переменных и значения как значения переменных. Для каждой пары ключ/значение будет создана переменная в текущей символьной таблице, согласно параметрам extract_type и prefix.
ИМХО, комментарии излишни))
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 19:01  [ТС] 8
Ну вот ответил я на вопрос , ПОСТОМ мне пришло например 10

и вот как мне вытащить нужный массив с этим значением?

Ведь Это многомерный массив
а там в внутри 4 массива и нужно как то выбрать тот в котором есть значение 10
0
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 19:05 9
PHP
1
2
3
$arr[0] = array([a_correct] => 1, .......)//$arr[0]..... сколько угодно уровней
extract($arr[0]);
echo $a_correct;//1
Разве нет?))
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 19:38  [ТС] 10
Пифагор, сложно)
Пока я понял что функция делает из ключей в массиве переменные.

Добавлено через 17 минут
Не я понимаю как это мне поможет вытащить a_correct по ключу [a_id] => 10
0
Harma
43 / 44 / 35
Регистрация: 13.01.2016
Сообщений: 155
31.01.2016, 19:46 11
Лучший ответ Сообщение было отмечено maruo как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$id=30;
$arr=array(
            "0"=>array("q_id"=>2,"q_quest"=>"skolko budet 3+3?","a_id"=>10,"a_answer"=>"shest","a_correct"=>1),
            "1"=>array("q_id"=>2,"q_quest"=>"skolko budet 3+3?","a_id"=>30,"a_answer"=>"semnadchat","a_correct"=>0)
);
echo ("<pre>");
print_r($arr);
echo ("</pre>");
 
$key = array_search($id, array_column($arr, "a_id"));
 
echo $arr[$key]['a_correct'];
?>
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 19:51  [ТС] 12
Fatal error: Call to undefined function array_column() in W:\home\mysite.com\www\test.php on line 11

Сначала мне надо ознакомиться с функцией
0
Harma
43 / 44 / 35
Регистрация: 13.01.2016
Сообщений: 155
31.01.2016, 19:52 13
maruo, (PHP 5 >= 5.5.0, PHP 7)
0
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 19:56 14
а что если так сделать?
PHP
1
2
3
4
5
6
7
foreach ($_SESSION['arr_answer'][ $_SESSION['rand_key'] ] as $key => $rowl)
{
    foreach ($rowl as $key_1 =>  $value) {
        if($key_1 == 'a_correct' && $value == '1') echo '</br>'.$key_1 . ' - ' .$value.'</br>';
        else echo '';
    }
}
Возможно бред, но попробуйте.

Добавлено через 2 минуты
Не. Похоже, бред...
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 19:57  [ТС] 15
Harma, не понял? с какой версией она не работает?
0
Harma
43 / 44 / 35
Регистрация: 13.01.2016
Сообщений: 155
31.01.2016, 19:59 16
Данная функция с версии 5.5 доступна, у вас какая?
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 20:01  [ТС] 17
Harma, 5.3.13 я на денвере, я не знаю как на нем поменять!
0
Пифагор
Модератор
1364 / 1096 / 571
Регистрация: 10.01.2015
Сообщений: 3,680
31.01.2016, 20:10 18
нашел кое что. возможно, поможет.
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$out_data = array (
    array("01_composita","Composita"),
    array("02_composita_p","Composita Plus"),
    array("03_contemporanea","Contemporanea"),
    array("04_epc","Epc"),
    array("05_hotel","Hotel"),
    array("06_plain_filomuro","Plait Filomuro"),
    array("07_pds","Pds"),
    array("08_soluzione","Soluzione"),
    array("09_teknoeuropa","Teknoeuropa"),
    array("10_telemako","Telemako"),
    array("08_soluzione","Telemako")
);
 
//Ищем
$needle = "08_soluzione";
 
//Собственно поиск
$result = array_filter($out_data, function($innerArray){
    global $needle;
    //return in_array($needle, $innerArray);    //Поиск по всему массиву
    return ($innerArray[0] == $needle); //Поиск по первому значению
});
 
//Результат
echo '<pre>'.print_r($result, true).'</pre>';
?>


Добавлено через 35 секунд
Цитата Сообщение от maruo Посмотреть сообщение
я не знаю как на нем поменять!
скачать новую версию Денвера)))
0
maruo
132 / 132 / 48
Регистрация: 26.04.2013
Сообщений: 1,355
31.01.2016, 20:13  [ТС] 19
Цитата Сообщение от Пифагор Посмотреть сообщение
скачать новую версию Денвера)))
Пока не нашел новее) на их оф сайте)
0
Harma
43 / 44 / 35
Регистрация: 13.01.2016
Сообщений: 155
31.01.2016, 20:19 20
maruo, скорее всего надо модуль качать и обновлять выше (не пробовал, точно не знаю).
Погуглил, можно разобраться, если захотеть.
Лучше перейдите на Open Server (быстрее будет). В настройках меняете версию во вкладке "Модули"
0
31.01.2016, 20:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2016, 20:19

Вывод правильного-неправильного ответа
В продолжение темы http://www.cyberforum.ru/html/thread712252.html Еще один вопросик: как сделать...

Перезапуск программы до правильного ответа
Здравствуйте. Возможно ли реализовать следующее (см. картинку). 1. Если пользователь отвечает...

Тест с вписыванием правильного ответа
Может у кого нить есть исходники) желательно с подсчётом оценки:cry:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru