2017-03-17 133 views
0

我有两个数组,我想加入他们。这两个数组都是foreach循环的产物。第一个是:PHP加入两个多维数组

$cleanNums[] = array(
    '01'=>$numbers[1], 
    '02'=>$numbers[2], 
    '03'=>$numbers[3], 
    '04'=>$numbers[4], 
    '05'=>$numbers[5], 
    ); 

和第二个是:

$newDates[] = array(
    'day'=>$cleanDate[1], 
    'month'=>$cleanDate[2], 
    'year'=>$cleanDate[3], 
    'draw'=>$cleanDate[6], 
    ); 

使用array_merge $weeklyValues = array_merge($newDates,$cleanNums);我越来越:

Array 
(
    [0] => Array 
     (
      [day] => 1st 
      [month] => March 
      [year] => 2017 
      [draw] => 660 
     ) 

    [1] => Array 
     (
      [01] => 3 
      [02] => 23 
      [03] => 40 
      [04] => 20 
      [05] => 28 
     ) 
) 

我想我的输出如下:

Array 
(
    [0] => Array 
     (
      [day] => 1st 
      [month] => March 
      [year] => 2017 
      [draw] => 660 
      [01] => 3 
      [02] => 23 
      [03] => 40 
      [04] => 20 
      [05] => 28 
     ) 
) 

回答

0

请使用此代码:

$resultArray = array(
    0 => current($newDates) + current($cleanNums) 
); 

print_r($resultArray); 
0

array_merge是做http://php.net/manual/en/function.array-merge.php的方式。错误输出的原因是您定义变量的方式,例如

$cleanNums[] = array(...)

会导致嵌套数组:

array(1) { 
    [0]=> 
    array(5) { 
    ... 
    } 
} 

为了避免它要么改变分配方式:

$cleanNums = array(...) 

或者你如何将它作为array_merge参数的方式:

$weeklyValues = array_merge($newDates[0],$cleanNums[0]); 

当然需要应用$newDates

0

我假设$ cleanNums和$ newDates是多维数组,并且会得到更多的[]值;

$weeklyValues = array(); 

foreach($cleanNums as $array) 
{ 
    $weeklyValues = array_merge($weeklyValues,$array); 
} 

foreach($newDates as $array) 
{ 
    $weeklyValues = array_merge($weeklyValues,$array); 
} 

print_r($weeklyValues); 
0
$count = count($newDates); 
$mergedArray = array(); 
for($i=0; $i < $count; $i++){ 
    //assuming both arrays have equal number of records 
    $mergedArray[] = current($newDates[$i]) + current($cleanNums[$i]); 
} 
var_dump($mergedArray); 
+1

尽管此代码可以回答这个问题,提供有关为什么和/或如何代码回答了这个问题提高了其长期价值的其他方面。 –