从数据库行以特定方式进行数组格式化?

时间:2012-12-28 06:28:07

标签: php codeigniter

我以下列方式从数据库中获取结果集行。

N/w_id   N/W_name   N/W_contact   C_id    C_name   Seconds
  1         x           e1         1        abc     2000
  1         x           e1         1        abc     3450
  1         x           e1         2        def     2300
  1         x           e1         3        ghi     800
  1         x           e1         3        ghi     5678
  2         y           e2         12       abcd    2000
  2         y           e2         12       abcd    3450
  2         y           e2         21       defg    2300
  2         y           e2         32       ghij    800
  2         y           e2         32       ghij    5678

当我使用$this->model->function_name()将数组中的所有这些行提取到名为$result的数组中时。所有这些行都在一个数组中作为不同的数组,但我想要以下格式的$result中的单个数组。

array   =>  [0] =>  [N/W_id]        =>  1
                    [N/W_name]      =>  x
                    [N/W_contact]   =>  e1
                    [cha]           =>  [0] =>  [C_id]      =>  1
                                                [C_name]    =>  abc
                                                [Seconds]   =>  5450
                                        [1] =>  [C_id]      =>  2
                                                [C_name]    =>  def
                                                [Seconds]   =>  2300
                                        [2] =>  [C_id]      =>  3
                                                [C_name]    =>  ghi
                                                [Seconds]   =>  6478
             [1]   =>   [N/W_id]        =>  2
                        [N/W_name]      =>  y
                        [N/W_contact]   =>  e2
                        [cha]           =>  [0] =>  [C_id]      =>  12
                                                    [C_name]    =>  abcd
                                                    [Seconds]   =>  5450
                                            [1] =>  [C_id]      =>  21
                                                    [C_name]    =>  defg
                                                    [Seconds]   =>  2300
                                            [2] =>  [C_id]      =>  32
                                                    [C_name]    =>  ghij
                                                    [Seconds]   =>  6478

1 个答案:

答案 0 :(得分:1)

编写一个这样的函数,用于从多维数组

创建单个数组
function array_flatten($array) { 
  if (!is_array($array)) { 
    return FALSE; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } 
    else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
}