Функции из laravel , но вопрос в целом и касается любых других фреймворков, шаблонизаторов и даже просто вывода кучи информации в DOM или еще куда то.
//Переменные чтобы не путать взял ABC
$ItemA=A::findOrFail($id);//Основная информация , будет выведена на форме(item A) например массив id name date
$selectedB=[];//Выбранные b айтемы например массив id name types A_id и C_Id
$B=$ItemA->GetB;//Кто знает ларавел те поймут там так реализованы связи, если не говорить о laravel то просто по A item(его id) берем B привязанные массив id name types A_id C_id из них и строится selected
$BTypes=['BtypeOne','BtypeTwo'];//упрощенно массив типов существующих
$C=C:All();
//Как следует напряжем сервер
foreach($B as $el){
foreach($BTypes as $type){
if($el->type==$type){
$selectedB[$el->C_id][$type]=$el;
}
}
}
Вывожу
Внимание слабонервным отойти от экрана и отвезти детей 18+
// На примере шаблонизатора БЛЭЙД. НО вопрос в целом о выводе о лучшем паттерне для этого
//ItemA
<div class="form-group">
<label>Timing</label>
{{Form::text('name',null,array('required' => 'required','class'=>'form-control'))}}
</div>
и так далее все что на форму а идет для редактирования кароче просто А само
//Внимание кульминация
@foreach($BTypes as $BType)
@foreach($B as $b)
<input
name="B[{{$c->id}}][BId]"
value="{{isset($selectedB[$C->id][$BType['id'])?
$selectedB[$C->id][$BType]['id']:'null'}}">
ну и так далее
@endforeach
@endforeach