У меня есть 2 массива со мной

Первый массив

Array ( [2019-04-29] => Array ( [0] => 366 [1] => 82 [2] => 44 ) [2019-04-30] => Array ( [0] => 330 [1] => 115 [2] => 55 ) ) 

Второй массив

Array ( [0] => 492 [1] => 500 ) 

Нужно объединить эти массивы с таким выводом.

Array ( [0] => Array ( [0] => 492 [1] => 366 [2] => 82 [3] => 44 ) [1] => Array ( [0] => 500 [1] => 330 [2] => 115 [3] => 55 ) ) 

Пожалуйста, помогите.

1
AMK 3 Май 2019 в 15:59

3 ответа

Лучший ответ

Вы можете использовать array_walk и array_merge

$arr1 = Array ( 
        '2019-04-29' => Array (
                 '0' => 366, 
                 '1' => 82, 
                 '2' => 44 
        ) ,
        '2019-04-30' => Array ( 
                '0' => 330,
                '1' => 115, 
                '2' => 55 
        )
);
$arr2 = Array ( '0' => 492 ,'1' => 500 ) ;
$index = 0;
$res=[];
array_walk($arr1, function($v,$k) use (&$res,$arr2,&$index){
  $res[] = array_merge(array($arr2[$index]),$v);
  $index++;
});  
echo '<pre>';
print_r($res);

Результат

Array
(
[0] => Array
    (
        [0] => 492
        [1] => 366
        [2] => 82
        [3] => 44
    )

[1] => Array
    (
        [0] => 500
        [1] => 330
        [2] => 115
        [3] => 55
    )

)
0
Rakesh Jakhar 3 Май 2019 в 13:11

Вы можете сделать это с помощью foreach цикла и {{X1 }}, после использования array_values переиндексировать $array1 в числовые индексы, начиная с 0.

$array1 = array_values($array1);
foreach ($array2 as $k => &$v) {
    $v = array_merge(array($v), $array1[$k]);
}
print_r($array2);

Выход:

Array 
(
[0] => Array
    (
        [0] => 492
        [1] => 366
        [2] => 82
        [3] => 44
    )

[1] => Array
    (
        [0] => 500
        [1] => 330
        [2] => 115
        [3] => 55
    )
)

Демо на 3v4l.org

0
Nick 3 Май 2019 в 13:15

Вы можете использовать array_walk и array_merge с традиционным инкрементатором

array_walk($arr1, function (&$item, $key) use ($arr2,&$i) { // $i should change at memory address
    $item = array_merge($item, [$arr2[$i]]);
    $i++;
});

< Сильный > Выход

Array
(
    [2019-04-29] => Array
        (
            [0] => 366
            [1] => 82
            [2] => 44
            [3] => 492
        )

    [2019-04-30] => Array
        (
            [0] => 330
            [1] => 115
            [2] => 55
            [3] => 500
        )

)

Демонстрация.

0
Rahul 3 Май 2019 в 13:29