Есть большой массив, порядка 3000. Выглядит так:
array(
'test1' => 23
'test2' => 35
...
)
Нужно добавить эти значения в БД (колонки: test, val), значение val может меняться, т.е массив не постоянный. Если test1 уже есть то обновляем занчение val, если нет то добавляем новую запись.
Пробовал сделать так:
foreach ($arr as $test => $val) {
$item = Arr::findOne(['test' => $test]);
if (!empty($item)) {
$item->test = $test;
$item->val = $val;
} else {
$item = new Arr();
$item->test = $test;
$item->val = $val;
}
$item->save();
}
Но так добавляется только одна запись. Как лучше это сделать?