Php 检查循环值中是否存在逗号分隔的值

Php 检查循环值中是否存在逗号分隔的值,php,arrays,loops,foreach,Php,Arrays,Loops,Foreach,我从客户机的旧数据库中获取一些值,如下所示: $query = "SELECT rowid,source FROM `".$table."`"; $result = mysql_query($query);$temp=0;$p = array(); while ($row = mysql_fetch_array($result)) {$p[$temp] = $row;$temp++;} 然后我循环遍历如下值: // loop through all possible values foreac

我从客户机的旧数据库中获取一些值,如下所示:

$query = "SELECT rowid,source FROM `".$table."`";
$result = mysql_query($query);$temp=0;$p = array();
while ($row = mysql_fetch_array($result)) {$p[$temp] = $row;$temp++;}
然后我循环遍历如下值:

// loop through all possible values
foreach ($p as $obj) {

}
在foreach循环中,我将打印
元素,并确定
元素。所选元素可以多于1,因为它是一种多选形式

首先,我检查
$selected
值是否等于rowid

// check if exists equals to rowid
if ($obj["rowid"] == $selected){
   $return .= '<option value="'.$obj["rowid"].'" selected>'.$obj["source"].'</option>';
}else{
   $return .= '<option value="'.$obj["rowid"].'">'.$obj["source"].'</option>';                 
}
只需使用+函数组合来检查所选
字符串中是否存在
rowid

if (in_array ($obj["rowid"], explode(",",$selected))){
      $return .= '<option value="'.$obj["rowid"].'" selected>'.$obj["source"].'</option>';
}else{
      $return .= '<option   value="'.$obj["rowid"].'">'.$obj["source"].'</option>';                 
}
if(在_数组中($obj[“rowid”],explode(“,”,$selected))){
$return.=''.$obj[“源”].';
}否则{
$return.=''.$obj[“源”].';
}
说明:例如,如果
$selected=“3,4”
爆炸(“,”,$selected)
返回您的
数组(3,4)
在数组中
检查
$obj[“rowid”]
'存在于该数组中,因此这意味着您将有多个
输出,只需使用+函数组合检查
所选
字符串中是否存在
rowid

if (in_array ($obj["rowid"], explode(",",$selected))){
      $return .= '<option value="'.$obj["rowid"].'" selected>'.$obj["source"].'</option>';
}else{
      $return .= '<option   value="'.$obj["rowid"].'">'.$obj["source"].'</option>';                 
}
if(在_数组中($obj[“rowid”],explode(“,”,$selected))){
$return.=''.$obj[“源”].';
}否则{
$return.=''.$obj[“源”].';
}

说明:例如,如果
$selected=“3,4”
那么
爆炸(“,”,$selected)
返回
数组(3,4)
在数组中
检查
$obj[“rowid”]
”是否存在于该数组中,这意味着您将有多个
输出,我不知道为什么我没有想到这一点。谢谢你我看到了你关于编辑答案的建议,如果($obj[“rowid”]==$selected | | | |…
,但是它实际上是无用的,因为在数组中($obj[“rowid”]),explode(“,”,$selected))
将处理
$selected
仅等于一个数字
($selected=“3”)的情况
我不知道为什么我没有想到这一点。谢谢你,我看到了你关于编辑答案的建议,如果($obj[“rowid”]==$selected | |……。
但是它实际上是无用的,因为
在数组中($obj[“rowid”],explode(,,$selected))当
$selected
仅等于单个编号
($selected=“3”)