#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, конечно, нет. Это одиночный игрок. Спасибо. Мой плохой.