我搜索一个返回一堆值的数据库。这些值被存储到一个名为$result_array
的数组中。然后我想找到一个元素在该数组中的位置。这是我当前的代码
public function cardPosition($cid, $did) {
$query = "SELECT cid FROM card WHERE did = '$did' ORDER BY id ASC";
$result = mysql_query($query);
$result_array = array();
while($row = mysql_fetch_assoc($result)) {
$result_array[] = $row;
}
while ($correct_cid = current($result_array)) {
if ($correct_cid == $cid) {
$cardPosition = key($result_array);
}
next($result_array);
}
return $cardPosition;
}
我使用mysql_fetch_assoc()
是因为我想为每个元素分配一个键值。然后,我使用第二个while循环来搜索数组中$correct_cid
值的元素。然后我将密钥的值分配给$cardPosition
,但当我return $cardPosition
时,我什么也得不到。如何获取元素在数组中的位置?
更新
我用过
$position = array_search($cid, $result_array);
但结果仍然一无所获。
我知道我的查询有效,因为我运行了
$num = mysql_num_rows($result);
我得到了正确的行数。
使用array_search()
函数可以找到数组的位置。假设我们有一个数组。
$a = array(
'blue' => 'nice',
'car' => 'fast',
'number' => 'none'
);
echo array_search("car",array_keys($a));
$position = array_search("search_text", $result_array);