php - Create associative array from three flat arrays -


consider following:

    $a = array('q1', 'q2', 'q3', 'q4');     $b = array('2014' => '101', '2014' => '102', '2014' => '103', '2014' => '104');     $c = array('2015' => '101', '2015' => '102', '2015' => '103', '2015' => '104'); 

how transform these 3 arrays 1 this:

    array(         'q1' => array(             '2014' => '101',             '2015' => '101'         ),         'q2' => array(             '2014' => '102',             '2015' => '102'         ),         'q3' => array(             '2014' => '103',             '2015' => '103'         ),         'q4' => array(             '2014' => '104',             '2015' => '104'         )     ); 

i'm unable merge $b , $c in way can use array_combine $a maintaining desired structure mentioned above.

sorry array() on code, i'm dealing legacy app.

first, have duplicate array keys , in case, last key override preceding ones. here, arbitrary assumption made effect keys have unique suffixes facilitate merging had intended.

<?php      $a = array('q1', 'q2', 'q3', 'q4');     $b = array('2014' => '101', '2014_2' => '102', '2014_3' => '103', '2014_4' => '104');     $c = array('2015' => '101', '2015_2' => '102', '2015_3' => '103', '2015_4' => '104');      function mergearraysassociative($arrkeys, $array1, $array2) {         $merged = array();         foreach ($arrkeys $key => $val) {             $arrkeys1   = array_keys($array1);             $arrkeys2   = array_keys($array2);              $arrvalues1 = array_values($array1);             $arrvalues2 = array_values($array2);              $merged[$val][$arrkeys1[$key]] = $arrvalues1[$key];             $merged[$val][$arrkeys2[$key]] = $arrvalues2[$key];          }          return $merged;     }      var_dump(mergearraysassociative($a, $b, $c));  ?> 
the var_dump() above produces similar shown below. and, can quick test here.
array (size=4)   'q1' =>      array (size=2)       2014 => string '101' (length=3)       2015 => string '101' (length=3)   'q2' =>      array (size=2)       '2014_2' => string '102' (length=3)       '2015_2' => string '102' (length=3)   'q3' =>      array (size=2)       '2014_3' => string '103' (length=3)       '2015_3' => string '103' (length=3)   'q4' =>      array (size=2)       '2014_4' => string '104' (length=3)       '2015_4' => string '104' (length=3) 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -