2016-07-18 3 views
2

Мой массив один как это:Как сгруппировать массив размером 1 размер в массив 2?

Array 
(
    [0] => Array 
     (
      [total_transaction] => 2000000 
      [month] => May 
     ) 

    [1] => Array 
     (
      [total_transaction] => 1000000 
      [month] => June 
     ) 
) 

Мой массив два, как это:

Array 
(
    [0] => 4000000 
    [1] => 5000000 
) 

Я хочу, чтобы сгруппировать массив так:

Array 
    (
     [0] => Array 
      (
       [target] => 4000000 
       [total_transaction] => 2000000 
       [month] => May 
      ) 

     [1] => Array 
      (
       [target] => 5000000 
       [total_transaction] => 1000000 
       [month] => June 
      ) 
    ) 

Я до сих пор confused

Любое решение для решения моей проблемы?

Большое спасибо

ответ

2

Раствор с помощью array_map и array_replace_recursive функции:

// $arrOne is your first array 
$arrTwo = [4000000, 5000000]; // it's your second array 

$arrTwo = array_map(function($v){ return ['target' => $v]; }, $arrTwo); 
$result = array_replace_recursive($arrOne, $arrTwo); 

print_r($result); 

Выход:

Array 
(
    [0] => Array 
     (
      [total_transaction] => 2000000 
      [month] => May 
      [target] => 4000000 
     ) 

    [1] => Array 
     (
      [total_transaction] => 1000000 
      [month] => June 
      [target] => 5000000 
     ) 
) 
1

Try:

foreach($array1 as $key1=>$arr1) { 
    if(isset($array2[$key1])) $array1[$key1]['target'] = $array2[$key1]; 
} 
0
$a = array 
(
    0 => array 
     (
      "total_transaction" => 2000000, 
      "month" => "May" 
     ), 

    1 => array 
     (
      "total_transaction" => 1000000, 
      "month" => "June" 
     ) 
); 

$b = array 
(
    0 => 4000000, 
    1 => 5000000 
); 

foreach($a as $key=>$val) { 
    $a[$key]['target'] = $b[$key]; 
} 

Попробуйте это ..

0

попробовать это,

$out = array(); 
foreach ($aa1 as $key => $value){ 
    $out[] = (object)array_merge((array)$aa2[$key], (array)$value); 
} 
print_r($out); 

https://3v4l.org/kBJVB

Надеюсь, это будет полезно.

0
$array1 = array(
    array(
     'total_transaction' => 2000000, 
     'month' => 'May' 
    ), 
    array(
     'total_transaction' => 1000000, 
     'month' => 'June' 
    )); 

$array2 = array(
'0' => 4000000, 
'1' => 5000000 
); 

foreach($array2 as $k=>$v){ 
    $array1["$k"]['target']=$v; 
} 
Смежные вопросы