foreach循环返回问题

r14*_*304 4 php foreach loops

嗨我写一个函数来查找数组,但它不工作时循环找到匹配的东西匹配它不重新调整真值检查到最后任何想法

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";
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Adr*_*idt 14

函数只能返回一次,因此您的函数将始终在第一次迭代时返回.如果您希望它在第一个匹配时返回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";
}
Run Code Online (Sandbox Code Playgroud)

(你在使用foreach中的值时也犯了错误,你忘记了a })


rik*_*rik 5

它应该是in_array($value, $array).但你可以做到count(array_intersect()).