将数组拆分为多个子数组

时间:2016-01-17 05:25:04

标签: php arrays multidimensional-array foreach

我有一个带有多个索引的多数组,我需要能够将数组拆分成带有2个索引的多个数组,我的代码在下面

查询返回一个数组然后循环认为它使它成为一个多数组然后采取特定索引并重建数组但是当我试图将最终结果拆分为带有数组块的较小数组时,它返回相同的数组。

$query = DB::Table('StockHistory')
             ->select('price_1','day_1','price_2','day_2','price_3','day_3','price_4','day_4','price_5','day_5')
             ->where('id', '=', $id)->get();
         $fields = [];
         foreach($query as $ind => $val) {
             foreach($val as $x => $y){
                 $fields[] =  [$x, $y];
             }
         }
         $data = [ $fields ];
         $output = array_map(function($value) {
             return [ $value[1][1],
                      $value[0][1],
                      $value[3][1],
                      $value[4][1],
                      $value[5][1],
                      $value[6][1]];
         }, $data);
         $a = array_chunk($output, 2, false);

按$ output返回数组

 array:1 [▼
  0 => array:1 [▼
    0 => array:6 [▼
      0 => "2016-01-06"
      1 => 10
      2 => "2016-01-12"
      3 => 16
      4 => "2016-01-18"
      5 => 17
    ]
  ]
]

所需数组

array:1 [▼
  0 => array:1 [▼
    0 => array:6 [▼
      0 => "2016-01-06"
      1 => 10
    1 => array:2[▼
      0 => "2016-01-12"
      1 => 16
    2 => array:2[▼
      0 => "2016-01-18"
      1 => 17
        ]
      ]
    ]

1 个答案:

答案 0 :(得分:1)

试试这个

<?php $a=array_chunk($output[0][0], 2, false); ?>