Я хочу сохранить 0 индексов имени, адреса электронной почты, контакта в новом массиве и наоборот всех данных - PullRequest
0 голосов
/ 25 сентября 2019

Мой результат таков, что добавленные данные выглядят так при запросе формы в laravel

Я хочу, чтобы этот тип массива в моем результате был первымданные блока добавления сохраняются в одном индексе, а затем наоборот все данные

name=>basit 
email=>kashif@gmail.com  
contact=>5454 
])  
sub_contact => array([ 
name=>basit 
email=>hamza12433@gmail.com  
contact=>53543
])

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вам не нужно изменять структуру массива запросов.Просто зациклите элемент и вставьте значения в базу данных.

foreach($request->name as $key => $value){
    Model::create([
        'name' => $request->name[$key],
        'email' => $request->email[$key],
        'contact' => $request->contact[$key],
    ]);
}
0 голосов
/ 25 сентября 2019

Вы можете зациклить один из подмассивов и использовать ключ в массиве array_column для получения всех значений.

$keys = array_keys($arr);

foreach($arr[$keys[0]] as $index => $value){
    $result[] = array_combine($keys, array_column($arr, $index));
}

var_dump($result);

https://3v4l.org/kUPi4


Или вложите foreach для получения значений таким образом.
Я считаю, что этот метод быстрее, чем array_column.

foreach($arr as $key => $value){
    foreach($value as $index => $item){
        $result[$index][$key] = $item;
    }
}

var_dump($result);

https://3v4l.org/DCP5W

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