Как объединить массивы по ключу

242
04 декабря 2017, 18:16

Есть массив users_inf

Array
(
    [0] => Array
        (
            [id] => 18
            [fio] => Дехтяр Анатолий
            [nic] => Мфыо
            [avatar] => 151216092618_av.jpg
        )
    [1] => Array
        (
            [id] => 19
            [fio] => Тот аккаунт с которым тесты проводил
            [nic] => anatolypower2
            [avatar] => 151198353419_av.jpg
        )
)

И есть второй массив user_message

Array
(
    [0] => Array
        (
            [id] => 18
            [text] => Всем привет :)
            [date] => 2017-12-02 20:27:55
        )
    [1] => Array
        (
            [id] => 19
            [text] => Ну привет коль не шутишь.
            [date] => 2017-12-02 20:29:43
        )
    [2] => Array
        (
            [id] => 18
            [text] => опаопа
            [date] => 2017-12-02 20:39:29
        )
    [3] => Array
        (
            [id] => 19
            [text] => gdf
            [date] => 2017-12-02 20:43:56
        )
)

Как их объединить по id чтобы во второй массив добавилась информация по совпадению с id первого массива.

Хочу получить такое.

Array
(
    [0] => Array
        (
            [id] => 18
            [fio] => Дехтяр Анатолий
            [nic] => Мфыо
            [avatar] => 151216092618_av.jpg
            [text] => Всем привет :)
            [date] => 2017-12-02 20:27:55
        )
)
Answer 1

Сделал так. 1 массив это $users_inf второй это $arraymessage Создал 3 пустой массив $usersmessage_array = array();

Ну и ниже сам код.

$count_arraymessage = count($arraymessage);
$count_users_inf = count($users_inf);
if($count_users_inf != 0 ) { $count_users_inf = $count_users_inf -1;}
if($count_arraymessage != 0 ) { $count_arraymessage = $count_arraymessage -1;}
for($i=0;$i<=$count_arraymessage;$i++) {
    $search_userinf = $arraymessage[$i]["id"];
    for($p=0;$p<=$count_users_inf;$p++) {
        if (in_array($search_userinf, $users_inf[$p])) {
            array_push($usersmessage_array, 
                       ['id' => $users_inf[$p]["id"],
                        'fio' => $users_inf[$p]["fio"], 
                        'nic' => $users_inf[$p]["nic"],
                        'text' => $arraymessage[$i]["text"],
                        'date' => $arraymessage[$i]["date"]
                       ]);
        }
    }
}

В этоге получил то что хотел.

Array
(
    [0] => Array
        (
            [id] => 18
            [fio] => Дехтяр Анатолий
            [nic] => Мфыо
            [text] => Всем привет :)
            [date] => 2017-12-02 20:27:55
        )
    [1] => Array
        (
            [id] => 19
            [fio] => Тот аккаунт с которым тесты проводил
            [nic] => anatolypower2
            [text] => Ну привет коль не шутишь.
            [date] => 2017-12-02 20:29:43
        )
    [2] => Array
        (
            [id] => 18
            [fio] => Дехтяр Анатолий
            [nic] => Мфыо
            [text] => опаопа
            [date] => 2017-12-02 20:39:29
        )
    [3] => Array
        (
            [id] => 19
            [fio] => Тот аккаунт с которым тесты проводил
            [nic] => anatolypower2
            [text] => gdf
            [date] => 2017-12-02 20:43:56
        )
)
READ ALSO
Алгоритм php печатать буквы по порядку

Алгоритм php печатать буквы по порядку

Как создать такой алгоритм, чтобы $i постоянно увеличивалась и циклом печаталась каждая буква abcd

345
PHP - DomDocument-&gt;saveXML ничего не выводит

PHP - DomDocument->saveXML ничего не выводит

Есть xml файл mvxml Пытаюсь вывести всю информацию из него

206
Имитация перехода на сторонний сайт

Имитация перехода на сторонний сайт

Существует ли решение в php( кроном или при загрузки страницы пользователем), переход на страницу для поисковой системы стороннего сайтаТо...

201
Хранение пароля в открытом виде в сессии

Хранение пароля в открытом виде в сессии

На сайте двухэтапная система авторизацииПосле прохождения первого этапа логин и пароль записываются в сессию в открытом виде

226