Проверка 4 чисел из билета

#php

#php

Вопрос:

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

Если у победителя есть 3 или 4 номера лотерейного массива, мы что-то выигрываем. Если нет, он проигрывает. Я написал код, который имеет «логику» того, что я хочу, но выдает мне много ошибок…

         $player_picket = array($lottery_t_1, $lottery_t_2, $lottery_t_3, $lottery_t_4);
        $lottery_numbers = array(10, 15, 2, 1);
        $prize = 35 * 15;

        $results = [];

         foreach ($player_picket as $numbers) {
             
            $winning = array_intersect($numbers, $lottery_numbers);
            
            $NumbersCount = sizeof($winning); 
             
            if($NumbersCount >= 3) {
                $result[$prize / 2];
            }
            if($NumbersCount == 4) {
                $result[$prize]; 
            }
            if($NumbersCount <= 3) {
                $result[0];
            }
         }            
         
         echo $result;
 

Результат ошибки:

 Warning: array_intersect(): Expected parameter 1 to be an array, int given in D:xampphtdocslottery.php on line 62

Warning: sizeof(): Parameter must be an array or an object that implements Countable in D:xampphtdocslottery.php on line 64
 

Я здесь немного отстой .. если кто-то может помочь.

Комментарии:

1. Ошибки довольно просты. Пересечение работает с двумя массивами, пока вы присваиваете ему номер. И затем следующая функция не может использовать ее для получения размера, поскольку она не удалась.

Ответ №1:

Вам не нужно использовать цикл, достаточно одного пересечения:

 $player_picket = array($lottery_t_1, $lottery_t_2, $lottery_t_3, $lottery_t_4);
$lottery_numbers = array(10, 15, 2, 1);
$prize = 35 * 15;

$result = 0;

$winning = array_intersect($numbers, $lottery_numbers);
$NumbersCount = sizeof($winning); 
if ($NumbersCount == 3) {
    $result = $prize / 2;
} else if ($NumbersCount == 4) {
    $result = $prize; 
}
         
echo $result;
 

Комментарии:

1. lol, конечно, нет. Это одиночный игрок. Спасибо. Мой плохой.