我有一个数组,在其中存储了一个这样的数据库值:
$stmt = $dbh->prepare("SELECT token FROM advertisement_clicks WHERE (username=:username OR ip=:ipcheck)");
$stmt->bindParam(":username",$userdata["username"]);
$stmt->bindParam(":ipcheck",$ipcheck);
$stmt->execute();
$data = array();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
所以,这给了我: array("token","token");
当我打印时:
Array ( [0] => Array ( [token] => 677E2114AA26BA4351A686917652C7E1BA67A32D ) [1] => Array ( [token] => C42190F3D72C5BB6BB6B68488D1D4662A8D2A138 ) )
然后,我有一个循环,循环所有令牌。在该循环中,我尝试搜索特定的令牌,如果该令牌匹配,它将被标记为“已看到”:
function searchForId($id, $array) {
foreach ($array as $key => $val) {
if ($val['token'] === $id) {
return $key;
}
}
}
这是我的循环:
$icon = "not-seen";
foreach($d as $value){
$token = $value["token"];
$searchParam = searchForId($token, $data);
if($searchParam == $token){
$icon = "seen";
}
}
但是,searchForid()
只需返回0
我究竟做错了什么?
好的,在这里您可以看到一个有效的PHP小提琴
$data = array();
$data[] = array('token'=>'123');
$data[] = array('token'=>'456');
function searchForId($id, $array) {
foreach ($array as $key => $val) {
if ($val['token'] === $id) {
return true;
}
}
return false;
}
$icon = "not-seen";
foreach($data as $value){
$token = $value["token"];
$searchParam = searchForId($token, $data);
if($searchParam){
$icon = "seen";
}
}
echo $icon;
'seen'
因为我比较了相同的数组值,所以它回显了预期的结果,现在假设您的$d
变量具有不同的标记,它仍然应该以这种方式工作。
这意味着您的$ d数组不包含您声明的内容,您可以print_r
将此变量发布到答案中吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句