doumi1311 2015-11-17 14:20
浏览 32
已采纳

从CodeIgniter中的数据创建多维数组

I have table named 'vehicles' in CodeIgniter project.

+----+---------+--------+
| id | name    | make   |
+----+---------+--------+
|  1 | Corolla | Toyota |
|  2 | Parado  | Toyota |
|  3 | Sunny   | Nissan |
|  4 | Maxima  | Nissan |
|  5 | Premoio | Toyota |
+----+---------+--------+

How can I get multi-dimensional array out of that as shown below:

Array
(
    [Toyota] => Array
        (
            [1] => Corolla
            [2] => Parado
            [5] => Premio
        )

    [Nissan] => Array
        (
            [3] => Sunny
            [4] => Maxima
        )
)
  • 写回答

3条回答 默认 最新

  • dongping1012 2015-11-17 15:00
    关注

    Let's assume that you can get all records from table in a array as in $rows variable.

    $rows = [
        ['id' => 1, 'name' => 'Corolla', 'make' => 'Toyota'],
        ['id' => 2, 'name' => 'Parado', 'make' => 'Toyota'],
        ['id' => 3, 'name' => 'Sunny', 'make' => 'Nissan'],
        ['id' => 4, 'name' => 'Maxima', 'make' => 'Nissan'],
        ['id' => 5, 'name' => 'Premoio', 'make' => 'Toyota']
    ];
    
    $result = [];
    foreach ($rows as $row) {
        $result[$row['make']][$row['id']] = $row['name'];
    }
    

    And just in a single loop you can achieve that. I hope it will help.

    CodeIgniter 3.x

    $query = $this->db->get('vehicles');
    
    $result = [];
    if($this->db->count_all_results() > 0)
    {
        foreach ($query->result_array() as $row)
        {
            $result[$row['make']][$row['id']] = $row['name'];
        }
    }
    
    echo '<pre>';
    print_r($result);
    echo '</pre>';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型