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”)