Как пройти через несколько циклов foreach и вставить данные в базу данных - PullRequest
0 голосов
/ 05 мая 2018

Доброе утро, братаны, как ты? у меня проблема с этим циклом

$users = User::all(); 
foreach($users as $user)
{
    foreach($data->toArray() as $dataRows) 
    { 
        if($user->admin ==0) 
        {
            $Data[]= 
                [
                'user_id' => $user->id, 
                'avatar' => 'avatar.png',
                'about' => $dataRows['description'] 
                ];
        }
    }
}
profile::insert($Data); 

Он проходит по каждому пользователю и присваивает все dataRows каждому пользователю. пожалуйста помогите

1 Ответ

0 голосов
/ 05 мая 2018

Предполагая, что ваш пользовательский массив проиндексирован, а ваши данные строки являются индексированным массивом ассоциативных массивов, вы можете объединить / синхронизировать данные с помощью одного цикла, используя общий индекс ($i).

$users = User::all();
$rows = $data->toArray();
foreach ($users as $i => $user) {
    if (!$user->admin) {
        $Data[]= 
            [
            'user_id' => $user->id, 
            'avatar' => 'avatar.png',
            'about' => isset($rows[$i]['description']) ? $rows[$i]['description'] : 'default'
            ];
    }
}
profile::insert($Data); 

p.s. Может быть целесообразно (в зависимости от ваших данных) проверить, что соответствующие $row данные существуют с isset(), прежде чем пытаться получить доступ к значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...