首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有更多条件的PHP预测

具有更多条件的PHP预测
EN

Stack Overflow用户
提问于 2016-02-26 06:54:57
回答 4查看 84关注 0票数 1

是否可以设置超过两个条件的foreach函数。下面的例子如下:

代码语言:javascript
复制
$stat_cps = $_POST['stat_cp'];
$acc_idss = $_POST['acc_ids'];

$string = 'NG';
foreach ($stat_cps as $url)
{
     if(strpos($string, $url) !== FALSE)
     {
          echo "One of the field is NG";
          return true;
     }
}

echo "All field is OK";

我想要的是:

如果$stat_cps$acc_idss包含NG,那么echo "One of the field is NG";

在上面的代码中,它只适用于$stat_cps

*stat_cps和acc_idss来自单选按钮表单。

有人能给出建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-26 06:58:41

可以使用array_merge组合两个数组:

http://php.net/manual/en/function.array-merge.php

代码语言:javascript
复制
$stat_cps = $_POST['stat_cp'];
$acc_idss = $_POST['acc_ids'];
$merged = array_merge($stat_cps,$acc_idss);
$string = 'NG';
foreach ($merged as $url)
{
     if(strpos($string, $url) !== FALSE)
     {
          echo "One of the field is NG";
          return true;
     }
}

这将删除重复的字符串键,但如果您只想要一个匹配项,则不应该出现这样的问题。

从你的评论试着做

代码语言:javascript
复制
 $stat_cps = $_POST['stat_cp'];
$acc_idss = $_POST['acc_ids'];
$merged = array_merge($stat_cps,$acc_idss);
$match = false;
$string = 'NG';
foreach ($merged as $url)
{
     if(strpos($string, $url) !== FALSE)
     {
          $match =  true;
     }
}

if($match){
       echo "One of the field is NG";
}else{
      echo "Everything is OK";
}
票数 1
EN

Stack Overflow用户

发布于 2016-02-26 07:17:31

具有array_mergeimplodestrpos函数的“单行”解决方案:

代码语言:javascript
复制
...
$hasNg = strpos("NG", implode(",", array_merge($stat_cps,$acc_idss)));
...

// check for 'NG' occurance
echo ($hasNg !== false)? "One of the field is NG" : "string 'NG' doesn't exists within passed data";
票数 2
EN

Stack Overflow用户

发布于 2016-02-26 07:03:12

代码语言:javascript
复制
$stat_cps = $_POST['stat_cp'];
$acc_idss = $_POST['acc_ids'];

$process=0;
$string = 'NG';
foreach ($stat_cps as $url)
{
     if(strpos($string, $url) !== FALSE)
     {
          $process=1;
     }
}
foreach ($acc_idss as $url2)
{
     if(strpos($string, $url2) !== FALSE)
     {
          $process=1;
     }
}
if($process==1){
  echo "One of the field is NG";
  return true;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35645377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档