PHP uses foreach magic transformation array of example explanation

  • 2021-09-04 23:47:56
  • OfStack

Requirements:

Convert the 2D array $arr to a 2D array with 'time' and 'type' as subscripts and 'data' as values;

Original array:


$arr = array(
   0 => array(
    'data' => 100,
    'type' => 1,
    'time' => '2018-01-26',
   ),
   1 => array(
    'data' => 200,
    'type' => 2,
    'time' => '2018-01-26',
   ),
   2 => array(
    'data' => 300,
    'type' => 2,
    'time' => '2018-01-27',
   ),
   3 => array(
    'data' => 400,
    'type' => 3,
    'time' => '2018-01-27',
   ),
   4 => array(
    'data' => 500,
    'type' => 4,
    'time' => '2018-01-28',
   ),
  );

Conversion:


foreach ($arr as $key => $value) {
 $change[$value['time']][$value['type']] = $value['data'];
}

Results:


array(3) {
 ["2018-01-26"] => array(2) {
 [1] => int(100)
 [2] => int(200)
 }
 ["2018-01-27"] => array(2) {
 [2] => int(300)
 [3] => int(400)
 }
 ["2018-01-28"] => array(1) {
 [4] => int(500)
 }
}

Related articles: