Нужно сделать проверку на одинаковые числа в цикле

$arr -массив.$num = 10. Нужно сделать проверку, если в массиве есть сумма которая есть в переменной $num вывести 1. Что делаю не так

function t10($num,$arr)
{
    for ($i = 0; $i <= count($arr); $i++){
        if($num === $arr[$i]){
            return 1;
        } 
        else {
            return 0;
        }
    }
}

Ответы (1 шт):

Автор решения: Алексей Шиманский

Несколько ошибок:

  1. не $sum, а $num
  2. если соблюдается какое-либо из условий, то сразу происходит выход из функции. Соответственно, если первое значение не совпадает с условием, то сразу происходит return 0. Цикл дальше не выполняется, т.к. из функции уже вернули значение и вышли из неё

Проблема решается чуть по-другому:

  • запускается цикл
  • если значение совпадает, то делаем return true; (1)
  • а вне цикла ставится return false; (0) . Т.к. если весь цикл отработал, значит ничего не нашлось.
→ Ссылка