Как сравнить два многомерных массива с разными ключами в PHP? - PullRequest
0 голосов
/ 05 октября 2019

Итак, проблема в том, что у меня есть 2 массива:

Array1:

[0] => Array
    (
        [misc_assignmentnbr] => 11000
        [misc_date] => 2019-10-03
        [user_id] => 111126
        [extra_info] => "test"
    )

[1] => Array
    (
        [misc_assignmentnbr] => 12000
        [misc_date] => 2019-10-03
        [user_id] => 111127
        [extra_info] => "test"
    )

[2] => Array
    (
        [misc_assignmentnbr] => 7000
        [misc_date] => 2019-10-04
        [user_id] => 111126
        [extra_info] => "test"
    )

[3] => Array
    (
        [misc_assignmentnbr] => 8000
        [misc_date] => 2019-10-04
        [user_id] => 111127
        [extra_info] => "test"

    )

Array2:

[12345] => Array
    (
        [user_id] => 111126
        [date] => 2019-10-03
    )

[12346] => Array
    (
        [user_id] => 111127
        [date] => 2019-10-03
    )

[12347] => Array
    (
        [user_id] => 111126
        [date] => 2019-10-04
    )

[12348] => Array
    (
        [user_id] => 111127
        [date] => 2019-10-04
    )

и хотите вернуть массив следующим образом:

[12345] => Array
    (
        [misc_assignmentnbr] => 11000
        [misc_date] => 2019-10-03
        [user_id] => 111126
        [extra_info] => "test"
    )

[12346] => Array
    (
        [misc_assignmentnbr] => 12000
        [misc_date] => 2019-10-03
        [user_id] => 111127
        [extra_info] => "test"
    )

[12347] => Array
    (
        [misc_assignmentnbr] => 7000
        [misc_date] => 2019-10-04
        [user_id] => 111126
        [extra_info] => "test"
    )

[12348] => Array
    (
        [misc_assignmentnbr] => 8000
        [misc_date] => 2019-10-04
        [user_id] => 111127
        [extra_info] => "test"

    ) 

Результирующий массив в основном тот же Array1, но с добавлением ключа Array2 в зависимости от его значений.

Есть способ сделать это в PHP, не имея 2 вложенных foreach?

Заранее спасибо.

Текущее решение (с использованием foreachs):

foreach($addedElements as $item) {
    foreach($jsonElements as $key=>$map) {
        if(in_array($item['misc_date'], $map) && in_array($item['user_id'], $map)){
            $resultArray[$key][] = $item;
            break;
        }
    }
}

Но хотел знать, есть ли другой способ использовать функции PHP

...