Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
in_array()codeginter PHP_Php_Arrays_Codeigniter - Fatal编程技术网

in_array()codeginter PHP

in_array()codeginter PHP,php,arrays,codeigniter,Php,Arrays,Codeigniter,大家好,我注意到codeigniter出现异常 在我的模型中,我查询数据库只是为了得到一个用户id列表 $recs = $this->db->query('select id from users'); 这很简单,但我想以数组的形式返回结果 我也是 $reccs->result_array(); 但是现在在我的控制器中,我想检查in_array 124,$returned_array; 这是不成功的,因为codeigniter已经将id数组封装到一个v大的外部数组中 Arr

大家好,我注意到codeigniter出现异常

在我的模型中,我查询数据库只是为了得到一个用户id列表

$recs = $this->db->query('select id from users');
这很简单,但我想以数组的形式返回结果

我也是

$reccs->result_array();
但是现在在我的控制器中,我想检查in_array 124,$returned_array; 这是不成功的,因为codeigniter已经将id数组封装到一个v大的外部数组中

Array ( [0] => Array ( [id] => 0 ) [1] => Array ( [id] => 11 )           [2]  =>   Array ( [id] => 29 )) 
如何使用in_array php函数仅检查id

我如何构建一个普通数组来存储id之类的东西

 $demo = array();
 foreach($recs as $r)
 $demo = array($r->id);
有什么建议吗?

您可以使用数组映射从每个子数组中提取该键。然后,in_数组将按正常方式工作

$found = in_array(124, 
                  array_map(function($val) { return $val['id']; },
                            $returned_array
                  )
         );
如果您没有>=PHP5.3,则用命名函数替换匿名函数。

您可以使用array\u map从每个子数组中提取该键。然后,in_数组将按正常方式工作

$found = in_array(124, 
                  array_map(function($val) { return $val['id']; },
                            $returned_array
                  )
         );

如果您没有>=PHP5.3,则将匿名函数替换为命名函数。

如果要检查用户是否在那里,则应进行计数查询

$this->db->where('id',124);
$count = $this->db->count_all_results('users');

if($count) {
// found
} else {
// not found
}

如果您想检查用户是否在那里,您应该进行计数查询

$this->db->where('id',124);
$count = $this->db->count_all_results('users');

if($count) {
// found
} else {
// not found
}

正如其他评论所说,有更好的方法可以做到这一点,但当您坚持这样做时,只需将id转换为数组以匹配结果数组结构:

in_array(array('id' => 124),$returned_array)

正如其他评论所说,有更好的方法可以做到这一点,但当您坚持这样做时,只需将id转换为数组以匹配结果数组结构:

in_array(array('id' => 124),$returned_array)

您可以循环结果集,生成一个NEW数组并利用它。下面是可能有用的代码

$i=0;
foreach($reccs->result_array() as $values)
{
$new_array[]=$values[$i]['id'];
$i++;
}

使用$new_数组进行数组内比较

您可以循环结果集,生成一个新数组并使用它。下面是可能有用的代码

$i=0;
foreach($reccs->result_array() as $values)
{
$new_array[]=$values[$i]['id'];
$i++;
}

使用$new_array进行数组内比较

从id=124的数据库中选择如何?nooo,我需要选择一个id列表,然后选中我认为这将有助于您从id=124的数据库中选择nooo,我需要选择一个id列表,然后进行检查。我想这会对你有所帮助。是的,我的IDE说,不是compatible@user1537158抱歉,我忘记将数组传递给数组映射。现在就试试吧。什么是$val,很抱歉我不懂:@user1537158这将是你数组中的每个子数组。是的,我的IDE说,不是compatible@user1537158抱歉,我忘记将数组传递给数组映射。现在试试看。什么是$val,很抱歉我不懂:@user1537158这将是你数组中的每个子数组。noo,这是完全错误的,说明中的124只是一个实例,我想检查用户id列表noo,这是完全错误的,说明中的124只是一个实例,我想检查用户id列表