将多维数组减少为线性

时间:2014-02-18 00:00:20

标签: php mysql sql arrays multidimensional-array

我问过类似的问题,但都没有回答。我猜测因为它太长了以至于我无法完全陈述或向公众说清楚。无论如何,有没有像这样减少数组

  

数组([0] =>数组([id] =>名称)[1] =>数组([id] =>名称))

上述值来自。

$query=$this->db
            ->select('id,name')
            ->from('employees')
            ->get()
            ->result_array();

上面的查询结果,

  

数组([0] =>数组([id] => 1 [名称] =>约翰))

因为我希望获得所有行而不会覆盖之前的行。我添加了这个算法。

foreach($query as $row)
{   
$employee_list[] = array($row['id']=>$row['name']);                                     
}

现在结果不会被覆盖,所以如果我print_r($employee_list); 我会回答,假设我的员工表中有两行。

1-约翰,2-彼得

  

数组([1] =>数组([1] => john)[2] =>数组([2] =>彼得))

我现在的问题是,如何将上面产生的数组减少到一维/线性。由于ID存储为KEY,而id列是INTEGER AUTO INCREMENT PRIMARY KEY,因此它没有任何重复,这意味着对于插入的每一行,id将递增。

所以如果我想要的数组就可以了。

  

数组([1] => john [2] =>彼得)

附加信息:我使用codeigniter作为我的框架,所以如果CI库中有任何已定义的函数,如果有人可以告诉我是否有任何函数,这将有所帮助。

1 个答案:

答案 0 :(得分:0)

在过去,你可以使用mysql_result选择一列到单维数组。

但是,自PHP 5.5.0以来它已被弃用,并且引用建议使用mysqli_fetch_field(强制您在评论中作为zerkms建议从响应中进行选择)或PDOStatement::fetchColumn如果您是愿意使用PDO。