Как сохранить массив в таблице, разделенной на array_chunk в php?

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 01.12.2018 19:09

Пожалуйста, покажите исходный массив ... Затем код, который вы используете для его разделения ... затем новый разделенный массив.

RiggsFolly 01.12.2018 19:11

я добавил свой код @RiggsFolly

amit sutar 01.12.2018 19:14

Где и что такое $string

RiggsFolly 01.12.2018 19:40

строка - это мой текст, моя переменная, откуда я получаю данные. я конвертирую свой pdf в текст с xpdf

amit sutar 01.12.2018 19:44

Также, что делает $share_holder_info->save(), выполняет ли он только ВСТАВКУ или может быть ОБНОВЛЕНИЕ?

Nigel Ren 01.12.2018 19:44

это моя функция вставки. я использую laravel

amit sutar 01.12.2018 19:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
7
324
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно изменить свой 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];

amit sutar 02.12.2018 04:53

@amitsutar попробуйте мой обновленный ответ. Я понял, что вы проверяете значения массива по-другому.

Josh 02.12.2018 04:59

Другие вопросы по теме