Есть ли более декларативный / менее ужасный способ написания этого (намеренно упрощенного) кода?
Я понимаю, что могу использовать ->each()
, но это все еще не избавляет от вложенности в этом случае?
Заметьте, мне нужно для генерации всех комбинаций, и у меня есть смесь вещей для циклического перебора - данные конфигурации, обычные массивы, Eloquent, хотя, очевидно, я мог бы их преобразовать первый ...
foreach(config('app.goals') as $goal) {
foreach(config('app.age_groups') as $ages) {
foreach($regions as $region_name => $region_id) {
foreach($interests->pluck('name')->prepend('') as $interest) {
foreach(config('app.devices') as $device) {
$record = new Foo();
$record->goal = $goal;
$record->age = $age;
$record->region = $region_id;
$record->interest = $interest;
$record->device = $device;
$record->save();
}
}
}
}
}
Неясно, может ли помочь метод Коллекция ? например
holygrail(config('app.goals'),config('app.age_groups'),$regions...)->each(function($combination) {
// logic for every combination
});