我很难解决这个问题。 虽然我是新来的。 我正在使用代码点火器,这是查询代码。
<?php
$is_member = $this->db->query("SELECT user FROM chatroom_members WHERE room='$row->id'");
$check = $is_member->result_array();
if (in_array($id, $check)) {
echo "Match found";
} else {
echo "Match not found";
}
?>
哪些输出未找到匹配项
但print_r($check)
给
Array ( [0] => Array ( [user] => 1 ) [1] => Array ( [user] => 2 )
那么我将如何检查我认为是多维数组中是否有特定的整数。
注意:$id = 1,这显然在数组中,但它仍然说没有找到。 有什么答案吗?如果我做错了什么,请随时纠正我
我认为最好的方法是有一个foreach循环,in_array在根数组上不起作用。
<?php
$is_member = $this->db->query("SELECT user FROM chatroom_members WHERE room='$row->id'");
$arrays = $is_member->result_array();
$found = false;
foreach ($arrays as $array) {
if(in_array($id,$array)) {
$found = true;
break;
}
}
echo $found === true ? "Match found" : "Match not found";
?>
如果您已经知道要查找的 ID 和要检查的房间 ID,则可能会从中受益:
(我在这里假设房间号包含在$row->id
中,并且您要查找的用户ID是$id
(
$this->db->select('user');
$this->db->from('chatroom_members');
$this->db->where('room', $row->id);
$this->db->where('user', $id);
$query = $this->db->get();
return ($query->num_rows() == 0) ? false : true;
您将避免循环访问一个巨大的结果数组(这可能是也可能不是问题,具体取决于表中的结果集的大小(,并且您将获得简单的是/否答案。 我使用了return
和三元运算符,但您可以轻松地将其更改为 if/else 并根据需要执行其他操作,而不是返回 true 或 false。