За последние 24 часа нас посетили 52279 программистов и 1763 робота. Сейчас ищут 2733 программиста ...

Ругается array_intersect

Тема в разделе "PHP для новичков", создана пользователем seifer, 8 июл 2017.

  1. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    Ругается на array_intersect - $r_value Argument #2 is not an array in, где может быть косяк?
    Код (Text):
    1.  
    2. function get_question(){
    3. global $db;
    4.    
    5.    
    6. $q = $_POST['submit_q'];
    7.  
    8. $query = "SELECT * FROM therapy WHERE text='$q[0]'";
    9.  
    10. $res = mysql_query($query) or die(mysql_error());
    11. if(!$res) return false;
    12.    
    13. while($row = mysql_fetch_assoc($res)){
    14.  
    15.     $keys = array_keys($row, "1");   //берем пару правильных
    16.     $keys_w = array_keys($row, "0");    //...неправильных
    17.     }
    18.  
    19.     $r = rand(1, 5);    //число правильных ответов
    20.    
    21.     $r_value = array_random_assoc($keys, $r); //Рандомим пару правильных
    22.     $w_value = array_random_assoc($keys_w, 12-$r); //...неправильных
    23.  
    24.     $result = array_merge($r_value, $w_value); //соединяем массивы
    25.     shuffle($result);        //перемешиваем
    26.    
    27.     return array($r_value, $w_value,$result);
    28.  
    29.  
    30. function array_random_assoc($arr, $num = 1) {
    31.     $keys = array_keys($arr);
    32.     shuffle($keys);
    33.    
    34.     $r = array();
    35.     for ($i = 0; $i < $num; $i++) {
    36.         $r[$keys[$i]] = $arr[$keys[$i]];
    37.     }
    38.     return $r;
    39. }
    40.  
    41. }
    42.    $get_que = get_question();
    Код (Text):
    1.  
    2. $list_answer = array_diff($arr, array('', NULL, false));
    3. $r_value=array();
    4.  
    5. $r_value = $get_que[0];
    6. $w_value = $get_que[1];
    7.  
    8. if(isset($list_answer)){get_answer($r_value, $w_value);}
    9.  
    10.         function get_answer($r_value, $w_value){
    11.            
    12.         global  $list_answer;
    13.        
    14.  
    15. $result_r = array_intersect($list_answer, $r_value);      
    16.        
    17.         $r = count($r_value);        //считаем сколько правильных выбрали
    18.         $r_w = count($result_r);    //сравниваем с эталоном  
    19.         $percent_r = ($r_w/$r)*100;    //считаем %
    20.        
    21. }
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В строке
    Код (Text):
    1. $r_value = $get_que[0];
    после которой $r_value, вероятно, уже не массив.