【发布时间】:2014-03-17 11:56:29
【问题描述】:
我问过一个类似的问题,但没有人回答。我猜是因为太长了,我无法完全说明或向公众说明。无论如何,有没有办法减少这样的数组
Array( [0]=>Array( [id]=>name ) [1]=>Array( [id]=>name ) )
以上数值来自。
$query=$this->db
->select('id,name')
->from('employees')
->get()
->result_array();
上面的查询结果,
Array([0]=>Array([id]=>1 [name]=>john))
因为我想获取所有行而不覆盖之前的行。我添加了这个算法。
foreach($query as $row)
{
$employee_list[] = array($row['id']=>$row['name']);
}
现在结果不会被覆盖所以如果我print_r($employee_list);
我会回应,假设我的员工表中有 2 行。
1-约翰,2-彼得
Array([1]=>Array([1]=>john) [2]=>Array([2]=>peter))
我现在的问题是,如何将上述结果数组减少为一维/线性。由于 ID 存储为 KEY,并且 id 列是 INTEGER AUTO INCREMENT PRIMARY KEY,因此它没有任何重复项,这意味着对于插入的每一行,id 都会递增。
如果我想要的数组是这样就可以了。
数组([1]=>约翰[2]=>彼得)
附加信息:我使用 codeigniter 作为我的框架,所以如果 CI 库中有任何已定义的函数,如果有人能告诉我是否有任何函数,将会有所帮助。
【问题讨论】:
-
$employee_list[$row['id']] = $row['name']? -
谢谢!经过测试,结果是一个一维数组。我才意识到为什么我的结果是这样的。 :) 如果你能把你的答案写成答案,我会尽快接受。
-
放弃吧,这个问题太琐碎了(而且对社区来说毫无用处),不能放在这里。
标签: php mysql sql arrays multidimensional-array