帮助匹配数组键相互覆盖

时间:2011-01-13 20:10:20

标签: php arrays codeigniter activerecord

我遇到的问题是从我正在运行的查询返回的数组

    $jobs = array(
  array('id'=>2,'salary'=>27000,'benefits'=>'false','benefits_description'=>'','skills'=>'PHP mysql javascript','job_summary'=>'Developing stuff','job_description'=>'Developing stuff','tags'=>'PHP, mysql, web development, web, leeds','created_at'=>1294871124,'updated_at'=>0,'job_titles_id'=>1,'locations_id'=>1,'employers_id'=>4,'id'=>1,'jobtitle'=>'Website Developer','id'=>1,'location'=>'Leeds')
);

我想在我正在构建的链接中使用第一个id,但是不是2而是返回1,因为我假设第一个id后来在数组中被ID覆盖?有没有办法阻止这种情况发生,我无法在项目的这个阶段更改我的数据库模式,从数据库获取此查询的查询如下所示,

$this->db->select('*')
        ->from('jobs')
        ->join('job_titles', 'job_titles.id = jobs.job_titles_id', 'left')
        ->join('locations', 'locations.id = jobs.locations_id', 'left')
        ->where('jobs.employers_id', $employer_id);

        $query = $this->db->get();

        return $query->result_array();

1 个答案:

答案 0 :(得分:1)

您需要为从数据库中返回的字段添加别名。

你没有指定你正在使用的RDBMS,但是很有可能是MySQL,而不是使用SELECT *(说实话是懒惰和不好的做法),你应该指定你特别需要的字段并且可以使用以下形式对第二个ID字段进行别名:

SELECT ... <table name>.<field name> AS id_2 ... FROM ...

以下是相关的MySQL manual page以获取更多信息。