foreach循环返回问题
嗨,我编写了一个在数组中查找的函数,但当循环找到匹配的内容时,它不起作用,它不会重新调整真值检查到最后任何想法,
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
函数只能返回一次,因此您的函数将始终在第一次迭代时返回。如果您希望它在第一次匹配时返回 true,如果未找到匹配则返回 false,请尝试以下版本。
(您在 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.
(You had also made errors in how you use the values in the foreach, and you have forgotten a
}
)它应该是
in_array($value, $array)
。但你可以只执行count(array_intersect())
。It should be
in_array($value, $array)
. But you could just docount(array_intersect())
.您正在
in_array()
中传递第一个参数一个数组,它应该是值将其更改为
you are passing first argument an array in
in_array()
it should be the valuechange it to