【问题标题】:CodeIgniter indexed array on query查询时的 CodeIgniter 索引数组
【发布时间】:2011-10-24 15:10:57
【问题描述】:

mysql 查询后如何接收索引数组?或者有什么方法可以将$this->db->get()转换成mysql资源?或者将关联数组转换为索引?

【问题讨论】:

  • 您使用的是什么数据库扩展? PDO、mysqli 等?
  • 另外,为什么?你需要做什么来要求数组被索引,而不是关联?
  • 您无法转换PHP resources。它们需要存在。

标签: php arrays codeigniter


【解决方案1】:

PHP 有一个函数 array_values(),它将返回一个仅包含值的数组。

http://it.php.net/manual/en/function.array-values.php

【讨论】:

    【解决方案2】:

    将 codeigniter result_array 转换为索引数组的示例:

    $query = $this->db->query("SELECT `tag_id` FROM `tags`");
    $arr = $query>result_array();
    print_r($arr); //codeigniter default result array
    
    //Output:
    
    Array
    (
     [0] => Array
        (
            [tag_id] => 1
        )
    
     [1] => Array
        (
            [tag_id] => 3
        )
    )
    

    现在,如果您想将上述数组转换为索引数组,那么您必须使用array_column() 函数,该函数通过将数组键作为参数将关联数组转换为索引数组,例如:

    $query = $this->db->query("SELECT `tag_id` FROM `tags`");
    $tags = $query>result_array();
    $arr = array_column($tags, "tag_id");
    print_r($arr); //converted indexed array
    
    //Output:
    
    Array
    (
     [0] => 1
    
     [1] => 3
    )
    

    【讨论】:

      【解决方案3】:

      看起来您可能正在使用 PHP CodeIgniter。 CodeIgniter 的 DB 实现不支持索引结果数组,您必须在对象或关联数组之间进行选择。

      这样做是为了使您的查询更易于维护,因为返回的数字索引更难调试和维护。

      Code Igniter User Guide - database results

      【讨论】:

        猜你喜欢
        • 2021-05-28
        • 1970-01-01
        • 1970-01-01
        • 2018-08-14
        • 2012-05-15
        • 2016-03-11
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多