我正在尝试通过检查数据库中与用户ID匹配的其他配置文件信息来消除数组中的某些项目。
function filterSexMatches($sSex, $aMatchIds){
foreach($aMatchIds as $iMatchId){
$aMatches[] = $this->getOne("SELECT `ID` FROM `Profiles` WHERE `ID` = '{$iMatchId}' AND `Sex` != '{$sSex}'");
}
return $aMatches;
}
这是我的函数,但当Sex不匹配时返回一个空id值并将其添加到$aMatches
数组。
如果Sex字段匹配,我想知道如何更改此选项以跳过用户ID,因此它不会返回空迭代。
答案 0 :(得分:1)
function filterSexMatches($sSex, $aMatchIds){
$aMatches = array();
foreach($aMatchIds as $iMatchId){
$data = $this->getOne("SELECT `ID` FROM `Profiles` WHERE `ID` = '{$iMatchId}' AND `Sex` != '{$sSex}'");
if (!empty($data)) {
$aMatches[] = $data;
}
}
return $aMatches;
}
答案 1 :(得分:0)
我个人会使用单个查询获取所有配置文件,然后在php中迭代结果,匹配并添加到空数组。而不是为每个id执行单个查询。
不完全确定你的系统是如何运作的,但我会尝试给出前。
$result = $this->getOne("SELECT * FROM Profiles WHERE ... ");
$newArray = array();
foreach($result as $row) {
if($row->sex == $sSex) {
$newArray[] = $row;
}
}
return $newArray;