循环遍历关联数组并在sql查询中传递键

时间:2015-01-09 06:55:18

标签: php sql arrays codeigniter associative-array

我有要求,当用户检查复选框时,我将复选框值作为键值对

Array( 
    [checkboxname] => Array( 
           [1] => on 
           [5] => on 
           [12] => on 
           [15] => on 
       )
)

我必须在sql语句中传递此键并从该键中检索另一个复选框。

这是我必须写的查询

foreach($array as $key => $value)
        {

        }

$reult = $this->db->get_where('select_another_value ', array('id' => $key))->result_array();

我应该在查询中写什么而不是$key

2 个答案:

答案 0 :(得分:0)

尝试 -

foreach($array as $key => $value){
    $reult[] = $this->db->get_where('select_another_value ', array('id' => $key))->result_array();
}

或者你可以试试 -

$keys = array();
foreach($array as $key => $value){
    $keys[] = $key;
}
if (count($keys) > 1) {
    $where = "  id IN (".implode(',', $keys).")";
} else {
    $where = " id = '".$key[0]."'";
}
$this->db->where($where);

如果你想避免在循环内运行查询。

答案 1 :(得分:0)

假设您希望从db获取所有已检查的check boxes值,并在数组键中使用Id并使用where_in()方法并在数组中传递数组键,请参阅下面的示例代码

$all_keys = array_keys($arr['checkboxname']);
$result = $this->db->where_in('id', $all_keys)
      ->get('select_another_value')->result_array();