@Tvis2010

Как соединить 2 массива в php?

Суть такова:
Есть 2 массива, Первый просто с нумерацией:
$clear = [];
			for ($i = 1; $i <= 10; $i++) {
				$clear[] = [
                                'mesto' => $i,
                            ];
			}

Выглядит он так:
spoiler
ff57930d14b34794ba78bf3dcc809353.png


Второй же из бд со значениями
$mesta2 = \DB::table('mesta')->where('game_id', 595)->get();

Выглядит так:
spoiler
7e11d35d172742d89625b8b7fd80b23f.png


Цель добавить к пустому массиву т.е. первому, информацию из второго по 'mesto'
Чтобы получилось что то типо этого:
spoiler
4390287ffaa84750929ea8cbee9539e3.png


Пробовал array_merge($clear,$mesta2); Просто в конец добавляет
Пробовал $clear+$mesta2 вобще ничего не происходит

Если можно напишите сразу код)
  • Вопрос задан
  • 859 просмотров
Решения вопроса 1
@Tvis2010 Автор вопроса
Сделал так
$mesta2 = \DB::table('mesta')
			->where('game_id', $gameId)
			->join('users', 'mesta.user_id64', '=', 'users.id64')
	        ->select(['mesta.*','users.username as username','users.avatar as avatar'])
			->get();  

			$clear = [];
for ($i = 1; $i <= $game->mest_all; $i++) {
			$find = 0;		     
             foreach($mesta2 as $mestos) {
                if($find == 0) {
                    if($mestos->mesto == $i) {
                        $find++;
						$i++;
						$clear[] = $mestos;
					}
				}			
			}
	$clear[] = [
                'mesto' => $i,
               ];
}
$mesta = json_encode($clear);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Не получается потому что $mesta2 это коллекция, а не массив.

$clear = ...;
$mesta2 = ...;
$result = array_merge($clear, $mesta2->toArray())
Ответ написан
@assets
Back-end developer
@errogaht
PHP developer
$clear = [];
for ($i = 1; $i <= 10; $i++) {
    $clear[] = [
        'mesto' => $i,
    ];
}

$mesta2 = \DB::table('mesta')->where('game_id', 595)->get()->keyBy('mesto');
$result = \Illuminate\Support\Collection::make($clear)->map(function ($item) use ($mesta2) {
    if ($persistedItem = $mesta2->get($item['mesto'])) {
        return $persistedItem;
    }
    return $item;
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы