在codeigniter中获取列值数组[关闭]
Posted
技术标签:
【中文标题】在codeigniter中获取列值数组[关闭]【英文标题】:get array of column values in codeigniter [closed] 【发布时间】:2013-10-22 01:19:49 【问题描述】:我有一个具有这种结构的表:
ID int(11)
user_id int(11)
notification_event_id int(11)
如何获得包含 user_id 列的所有值的数组:
前:
Array([0]=> 1,[1]=>2,[2]=>3,[3]=>4,[4]=>5,[5]=>6);
并且不循环 result_array()
值并将 user_ids 移动到新的整数数组
这可能吗?
【问题讨论】:
你想要所有的user_id?例如<select></select>
?只是 ID,还是 id => 用户名?
是的,所有 user_id 和 ID 数组都像这样:$result = [user_id1,user_id2,user_id3,user_id4,user_id5...]
@PatrickMaciel-p4dev
【参考方案1】:
每个结果行本身就是一个数组,所以一些循环是必要的!为什么你需要做不同的事情?
做你想做的最直接的方法是:
// Model
function get_all_userid()
$query = $this->db->get('table_name');
$array = array();
foreach($query->result() as $row)
$array[] = $row['user_id']; // add each user id to the array
return $array;
// Controller
function user_list()
$data = $this->your_model->get_all_userid(); // get results array from model
$this->load->view('your_view', $data); // pass array to view
显然,您需要调整表/模型名称以匹配您正在使用的名称。
【讨论】:
我收到类似Cannot use object of type stdClass as array
的错误,我认为在foreach 中您应该更改result_array
而不是result
【参考方案2】:
我做了一个研究,发现了这个:
注意:一个“神奇”的解决方案,例如:使用 codeigniter 自定义函数,我认为在实际的框架版本中不存在。因此,您需要在 Model 或 Custom Helper 中创建一个函数。
参考:Populate drop down list from database
使用你的模型
// Controller
$data['city_list'] = $this->City_model->get_dropdown_list();
$this->load->view('my_view_file', $data);
Model:
// Model (or create a helper -- see below)
function get_dropdown_list()
$this->db->from('city');
$this->db->order_by('name');
$result = $this->db->get();
$return = array();
if($result->num_rows() > 0)
foreach($result->result_array() as $row)
$return[$row['id']] = $row['name'];
return $return;
// View
<?php echo form_dropdown('city_id', $city_list, set_value('city_id', $city_id));
使用助手
if ( ! function_exists('drop_down'))
function drop_down($name, $match, $data)
$form = '<select name="'.$name.'"> ' ."\n";
foreach($data as $key => $value)
$selected = ($match == $key) ? 'selected="selected"' : NULL ;
$form .= '<option value="'. $key .'" '. $selected .'>'.$value.'' . "\n";
$form .= '</select>' . "\n";
return $form;
In the view
echo drop_down('mylist', 3, $data);
【讨论】:
以上是关于在codeigniter中获取列值数组[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
CodeIgniter 查询:如何将列值移动到同一行中的另一列并将当前时间保存在原始列中?