Доброе утро, братцы, как дела? у меня проблема с этим циклом
$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);
Он проходит через каждого пользователя и назначает каждому пользователю все строки данных. пожалуйста помоги
Где инициализировать $Data? Есть ошибка? С какой проблемой вы столкнулись?
в чем ошибка?
Ошибка не возвращается, данные добавляются в базу данных, однако, допустим, например, user_id 1 добавлен в базу данных, все 58 dataRows присвоены user_id 1 и повторяются 58 раз для одного и того же пользователя, и когда это будет сделано , он переходит ко второму пользователю и делает то же самое.
Это то, что можно ожидать от вложенных циклов. Вам нужно будет синхронно перебирать оба источника данных. Оба массива случайно «проиндексированы»?






Предполагая, что ваш массив пользователей проиндексирован, а данные вашей строки являются индексированным массивом ассоциативных массивов, вы можете объединить / синхронизировать данные с помощью одного цикла, используя общий индекс ($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(), прежде чем пытаться получить доступ к значению.
Я попытался использовать приведенный выше код, и он выдает эту ошибку. Неопределенное смещение: 57
Вам нужно будет добавить && isset($rows[$i]['description']) после !user->admin, но это означает, что пользователи без описаний будут исключены из процесса INSERT. ... так что это вызывает больше вопросов о вашей задаче ... Как вы можете слепо и уверенно объединить эти два набора данных? Откуда вы знаете, что должно быть объединяет данный идентификатор пользователя с данным описанием? Неопределенное смещение означает, что у вас меньше описаний, чем у пользователей.
для этой части он возвращает true или false 'about' => $ rows [$ i] ['description'] он не возвращает описание
Вы получили URL
Удалось заставить его работать. Большое спасибо, чувак. Есть ли у вас адрес Skype?
Можете ли вы сформулировать вопрос более четко?