我有一个像这样的数组
Array (
[14] => 0.46902846738366
[16] => 0.40289063077504
[17] => 0.54903658244928
)
14,16,17与数据库中我的表的数组键ID相同。如何根据密钥数组(14,16,17)从数据库表中访问我的信息?
我们假设在表中存储了大量数据,但我只想获取id为14,16,17的数据。之后从id中选择我将执行数学运算以查找值这三个中最高的。?
答案 0 :(得分:1)
$arry = array(14 => 0.46902846738366,16 => 0.40289063077504,17 =>0.54903658244928 );
$idarray=array_keys($arry);
"SELECT data FROM table WHERE id IN (".implode(',',$idarray).")";
答案 1 :(得分:1)
使用id获取行将此代码放入模型中(让我们称之为模型)
function get($ids) {
return $this->db->where_in('id', $ids)->order_by->('my_col_name')->get('storage')->result(); // or result_array();
}
并像这样称呼它
$data = $this->model->get(array_keys($zip_array));// or $this->model->get($array_a); from your last question
$ data中的数据将从最大值到低值排序,因此您自动获得最大值!只需要将my_col_name更改为列名
更新:当然你只能选择最大值,如果你愿意,可以将get()更改为
return $this->db->where_in('id', $ids)->select_max('my_col_name')->get('storage')->row();
答案 2 :(得分:0)
$myArray = array (
'14' => 0.46902846738366,
'16' => 0.40289063077504,
'17' => 0.54903658244928,
) ;
$myArrayForQuery = implode(',',array_keys($myArray));
$myQuery = 'SELECt * FROM mytable where id in ( '.$myArrayForQuery.' );';