foreach循环返回问题

发布于 2024-10-06 13:40:59 字数 365 浏览 0 评论 0原文

嗨,我编写了一个在数组中查找的函数,但当循环找到匹配的内容时,它不起作用,它不会重新调整真值检查到最后任何想法,

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";
}

谢谢

hi i write a function to find in array but its not working when loop find something match its not retuning true value checks to the end any idea

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";
}

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

与他有关 2024-10-13 13:40:59

函数只能返回一次,因此您的函数将始终在第一次迭代时返回。如果您希望它在第一次匹配时返回 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";
}

(您在 foreach 中使用值的方式也犯了错误,并且您忘记了 }

A function can only return once, so your function will always return on the first iteration. If you want it to return true on the first match, and false if no match was found, try the version below.

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";
}

(You had also made errors in how you use the values in the foreach, and you have forgotten a })

倾`听者〃 2024-10-13 13:40:59

它应该是in_array($value, $array)。但你可以只执行count(array_intersect())

It should be in_array($value, $array). But you could just do count(array_intersect()).

緦唸λ蓇 2024-10-13 13:40:59

您正在 in_array() 中传递第一个参数一个数组,它应该是值
将其更改为

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

you are passing first argument an array in in_array() it should be the value
change it to

function findinArray($find,$array){
    foreach($find as $key => $value){
        if (in_array($value,$array)) {
            return true;
        }
        return false;
    }      
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文