I am getting data in array format.Some times i get duplicate data after 2nd index. so i decide to split array in 3 index with array_chunk function of php. But after doing this on foreach loop get only 0th index. i want to store all 0th,1st,2nd.. in tables with new row.
Array
(
[0] => Array
(
[0] => xyz
[1] => dublin
[2] => 2
[3] => yxd
[4] => canada
[5] => 2
)
)
Я использую array_chunk для разделения своего массива.
Array
(
[0] => Array
(
[0] => Suhas shinde
[1] => Jogeshwari
[2] => 2
)
[1] => Array
(
[0] => Suhas shinde
[1] => Jogeshwari
[2] => 2
)
)
Теперь мне нужно сохранить это в таблице. поэтому я использовал цикл foreach:
foreach ($matches as $value)
{
$share_holder_info->trad_id = $rand_id;
$share_holder_info->name = $value[0];
$share_holder_info->address = $value[1];
$share_holder_info->shares = $value[2];
$share_holder_info->save();
}
Он хранит в таблице только 0-й индекс массива.
if (preg_match_all('~(?:\G(?!\A)|In respect of Shareholders)\s*[^:\r\n]+:\h*\K.*~', $string, $matches)) {
$matches = array_chunk($matches[0],3);
//foreach loop
}
Пожалуйста, покажите исходный массив ... Затем код, который вы используете для его разделения ... затем новый разделенный массив.
я добавил свой код @RiggsFolly
Где и что такое $string
строка - это мой текст, моя переменная, откуда я получаю данные. я конвертирую свой pdf в текст с xpdf
Также, что делает $share_holder_info->save(), выполняет ли он только ВСТАВКУ или может быть ОБНОВЛЕНИЕ?
это моя функция вставки. я использую laravel






Вам нужно изменить свой foreach на это, чтобы разрешить создание нового экземпляра модели для каждого набора записей.
foreach ($matches as $value) {
$share_holder_info = new ShareHolderInfo();
$share_holder_info->trad_id = $rand_id;
$share_holder_info->name = $value[0];
$share_holder_info->address = $value[1];
$share_holder_info->shares = $value[2];
$share_holder_info->save();
}
Вам нужно будет изменить его на то, что когда-либо была названа ваша фактическая модель.
надеюсь, это поможет
спасибо за ответ, но он показывает мне ошибку "Uninitialized string offset: 2 в строке $share_holder_info->shares = $value[2];
@amitsutar попробуйте мой обновленный ответ. Я понял, что вы проверяете значения массива по-другому.
Ваш разделенный массив выглядит Ничего подобного ваш исходный массив? Здесь есть какая-то магия, которую вы нам не показываете?