2010-12-08 3 views
1

привета я написать функцию, чтобы найти в массиве, но он не работает, когда петля найти что-то соответствовать его не перенастройкам истинных проверок стоимости до конца любой идеиЕогеаспа обратного цикла проблема

function findinArray($find,$array){ 
    foreach($find as $key => $value){ 
     if (in_array($find,$array)) { 
      return true; 
     }else{ 
      return false; 
    }  } 
} 
if(findinArray(array("a","b"),array("a")){ 
     echo "Match"; 
} 

благодаря

+1

Что следует функции делать? Что такое * найденное * условие? – 2010-12-08 08:52:01

ответ

7

функция может возвращать только один раз, так что ваша функция всегда будет возвращать на первой итерации. Если вы хотите, чтобы он вернул true в первом совпадении, а false, если совпадение не найдено, попробуйте версию ниже.

function findinArray($find, $array) { 
    foreach ($find as $value) { 
     if (in_array($value, $array)) { 
      return true; 
     } 
    } 
    return false; 
} 

if (findinArray(array("a","b"), array("a")) { 
    echo "Match"; 
} 

(Вы также делали ошибки в том, как использовать значение в Еогеаспе, и вы забыли })

+0

вот что мне нужно поблагодарить вас Да, была ошибка, но это было начислено при публикации здесь. Теперь я получаю идею. – r1400304 2010-12-08 09:00:46

4

Он должен be in_array($value, $array). Но вы могли бы просто сделать count(array_intersect()).

0

вы передаете первый аргумент массив в in_array() должно быть значение изменить его

function findinArray($find,$array){ 
    foreach($find as $key => $value){ 
     if (in_array($value,$array)) { 
      return true; 
     } 
     return false; 
    }  
} 
Смежные вопросы