如何根据此mysql结果更改此数组键

时间:2019-04-26 10:37:16

标签: php mysql arrays

我有此代码,也有查询。

$id_user = $this->current_user->id;
    $query_perusahaan = "SELECT
                    default_perusahaan.id_perusahaan,
                    default_perusahaan.nama_perusahaan
                    FROM
                    default_users
                    INNER JOIN default_user_perusahaan ON default_user_perusahaan.id_default_user = default_users.id
                    INNER JOIN default_perusahaan ON default_perusahaan.id = default_user_perusahaan.id_default_perusahaan
                    WHERE default_users.id = $id_user";
    $query_perusahaans = $this->db->query($query_perusahaan)->result_array();
    $list_per = array();
    $list_per[null] = "Tidak memakai perusahaan";
    foreach ($query_perusahaans as $item => $nama) {
        $list_per[$item] = $nama;
    }
        print_r($list_per);
        die();

这是结果: Image Result unexptected

我期望的结果是id_perusahaan成为数组键。 我究竟做错了什么? :(

2 个答案:

答案 0 :(得分:0)

替换

 $list_per[$item] = $nama;

使用

$list_per[$nama['id_perusahaan']] = $nama['name_perusahaan']; 

答案 1 :(得分:0)

您可以使用array_column而不是循环数组

$list_per = array_column($query_perusahaans, null, "id_perusahaan");

第三个参数设置键名。
这意味着array_column将返回没有特定列的数组(空),但是将键更改为“ id_perusahaan”。
这导致数组具有关联性

或者如果您想使数组平坦:

$list_per = array_column($query_perusahaans, "name_perusahaan", "id_perusahaan");