Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет!
Подскажите, пожалуйста, элегантное решение для преобразования массива вида
$persons = [
'name'=>[
0=> 'Vasya',
1=>'Petya',
2=>'Kolya'
],
'street' =>[
0=>'Lenina',
1=>'Marksa',
2=>'Engelsa'
]
];
в
[
0 => [
'name' => "Vasya",
'street' => "Lenina"
],
1 => [
'name'=>"Petya"
'street' => "Marksa"
],
2 => [
"name'=>"Kolya"
'street' => "Engelsa"
]
]
Нужно для создания relationship моделей на основе формы. Или может форму по другому сформулировать?
Спасибо!
Не в сети
Под "неэлегантным" я подразумеваю что-то вроде:
$persons = [
'name'=>[
0=> 'Vasya',
1=>'Petya',
2=>'Kolya'
],
'street' =>[
0=>'Lenina',
1=>'Marksa',
2=>'Engelsa'
]
];
$people=[];
foreach($persons as $fieldName => $fields){
foreach($fields as $k => $field){
$people[$k][$fieldName] = $field;
}
}
Не в сети
<?php
$persons = [
'name'=>[
0=> 'Vasya',
1=>'Petya',
2=>'Kolya'
],
'street' =>[
0=>'Lenina',
1=>'Marksa',
2=>'Engelsa'
]
];
// ----
$elegant = array_map(function ($name, $street) {
return compact('name', 'street');
}, $persons['name'], $persons['street']);
// ----
var_dump($elegant);
Не в сети
Благодарю!!
Не в сети
Страницы 1