Как объединить два массива в php - PullRequest
0 голосов
/ 13 марта 2020

Как объединить два массива в один массив? В позиции даты 0 и 1 оба объединены в l oop, мой код массива ниже здесь.

Array
(
    [Apr-2019] => Array
        (
            [0] => Array
                (
                    [DateUser] => Apr-2019
                    [withdarw_amount] => 4.00
                )
            [1] => Array
                (
                    [current_deposit_amount] => 1.00
                    [current_deposit_table_refer] => 0.00
                    [current_deposit_user_refer] => 0.10
                    [DateUser] => Apr-2019
                )
        )
) 

как мой вывод:

[Apr-2019] => Array
        (
                    [DateUser] => Apr-2019
                    [withdarw_amount] => 4.00
                    [current_deposit_amount] => 1.00
                    [current_deposit_table_refer] => 0.00
                    [current_deposit_user_refer] => 0.10
                    [DateUser] => Apr-2019
        )

Я пытался использовать этот код ,

$data = array_merge($withdrow_amount,$data_casback,$cashbonus_data,$data_discount,$CurrentDeposit);
$months = array();
foreach($data as $date) {
  $month = substr($date['DateUser'], 0, 8);
  $months[$month][] = $date;
}
echo '<pre>'; print_r($months); die;

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Вы также можете использовать простые циклы -

$new = [];
foreach ($array as $key =>$a) {
    $new[$key] = []; // Define with key
    foreach ($a as $v) {
        $new[$key] += $v; // Concat
    }
}
1 голос
/ 13 марта 2020

Вы можете перебирать массив, используя array_merge с оператором ..., чтобы сгладить внутренние массивы. Обратите внимание, что в массиве не может быть двух ключей DateUser, поэтому один из них будет удален; при условии, что они имеют те же значения, что и в ваших данных, что не будет проблемой:

$array = array (
    'Apr-2019' => 
    array (
        0 => 
        array (
            'DateUser' => 'Apr-2019',
            'withdarw_amount' => 4.00
        ),
        1 => 
        array (
            'current_deposit_amount' => 1.00,
            'current_deposit_table_refer' => 0.00,
            'current_deposit_user_refer' => 0.10,
            'DateUser' => 'Apr-2019'
        ),
    ),
    'Jun-2019' => 
        array (
            0 => 
            array (
                'DateUser' => 'Jun-2019',
                'withdarw_amount' => 334.00
            ),

        )
);

foreach ($array as &$arr) {
    $arr = array_merge(...$arr);
}
print_r($array);

Вывод:

Array
(
    [Apr-2019] => Array
        (
            [DateUser] => Apr-2019
            [withdarw_amount] => 4
            [current_deposit_amount] => 1
            [current_deposit_table_refer] => 0
            [current_deposit_user_refer] => 0.1
        )
    [Jun-2019] => Array
        (
            [DateUser] => Jun-2019
            [withdarw_amount] => 334
        )    
)

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

...