combine two array using common field in php -


i need combine 2 array using key field.

$array1 = array( val1 => 'abc', val2 => '5' ); $array1 = array( val1 => 'bcd', val2 => '2' );  $array2 = array( val1 => 'abc', val3 => '1' ); $array2 = array( val1 => 'zzz', val3 => '3' );   array1: val1    val2 abc       5  bcd       2     array2: val1    val3 abc       1 zzz       3 

the result have follows;(requirement)

val1          val2             val3 abc             5                1 bcd             2                0 zzz             0                3 

still now, developed further needs modification achieve above table.

foreach($array1 $ar1){     $val1='';     $val2='';     $val3='';     foreach($array2 $ar2){         if($ar1['val1']==$ar2['val1']){            $val1=$ar1['val1'];            $val2=$ar1['val2'];            $val3=$ar2['val3'];         }     }      $result=array(         val1 => $val1,         val2 => $val2,         val3 => $val3     );  } 

this captures common data.

$result = array();  // make $result associative array, containing contents of $array1 foreach ($array1 $e) {     $e['val3'] = 0; // val3 defaults 0     $result[$e['val1']] = $e; }  // merge in $array2 foreach ($array2 $e) {     if (isset($result[$e['val1']])) {         $result[$e['val1']]['val3'] = $e['val3'];     } else {         $e['val2'] = 0; // val2 defaults 0         $result[$e['val1']] = $e;     } }  // convert indexed array $result = array_values($result); 

btw, correct way create input arrays is:

$array1 = array(array( 'val1' => 'abc', 'val2' => '5' ),                 array( 'val1' => 'bcd', 'val2' => '2' ) );  $array2 = array(array( 'val1' => 'abc', 'val3' => '1' ),                 array( 'val1' => 'zzz', 'val3' => '3' ) ); 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -