而不是foreach循环,我如何使用in_array()?

时间:2012-06-23 10:51:46

标签: php arrays codeigniter

在codeigniter中,在我的控制器文件中,我从模型中获取数据。为了验证结果,我使用foreach循环,没有问题。但是我没有使用foreach而是想使用in_array()来控制变量是否在数据库结果数组中。这是代码:

function _remap($method,$params = array()){ 

//in construct, I use $this->model
if (isset($params[0])) {

    $this->db->distinct('*****');
    $this->db->from('*****');
    $this->db->where('****',****);

    $query = $this->db->get();

    if (in_array($params[0],$query->results())) {
        echo "in_array works";
    }
}

但不回应任何事情。我该怎么办?谢谢。

3 个答案:

答案 0 :(得分:2)

根据manual,您可以使用result_array()。否则你会找回一个物体。当然,您不能将in_array用于对象。

另外根据手册,您可以将代码更改为

if (in_array($params[0], $query->first_row('array')) {
  // ...

答案 1 :(得分:1)

in_array 仅用于检查值列表中的值
例如数组(“Mac”,“NT”,“Irix”,“Linux”);

in_array 不适用于您的情况,因为它会返回对象数组。

答案 2 :(得分:0)

我建议编写一个帮助方法,它可以完成你想要的工作并返回True或False。有关如何操作的信息可以在here

找到