PHP连接两个多维数组

时间:2017-03-17 13:57:41

标签: php arrays multidimensional-array

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

$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
        )
)

4 个答案:

答案 0 :(得分:0)

请使用此代码:

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

print_r($resultArray);

答案 1 :(得分: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需要同样适用。

答案 2 :(得分: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);

答案 3 :(得分: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);