Приветствую У меня есть массив разделов, и вопрос, связанный с этим разделом, выглядит так
И я перебираю этот массив и вывожу содержимое на экран вот код
@foreach($sections as $section)
<div class = "form-group">
<h2>{{ $section['section_name'] }}</h2>
<p>{{ $section['section_description'] }}</p>
<p>{{ $section['section_intro'] }}</p>
</div>
<div class = "form-group ms-5">
@foreach($section['question'] as $question)
<h5>{{ $question['question_name'] }}</h5>
<p class = "ms-3">{{ $question['question_description'] }}</p>
@endforeach
</div>
@endforeach
И результат этого выглядит так
Как я могу удалить это повторяющееся имя_вопроса? Я просто хочу, чтобы он написал его один раз, например, он записывает один ключевой контракт и два этих вопроса_описания для всех из них?
@foreach($sections as $section)
<div class = "form-group">
<h2>{{ $section['section_name'] }}</h2>
<p>{{ $section['section_description'] }}</p>
<p>{{ $section['section_intro'] }}</p>
</div>
<div class = "form-group ms-5">
@php
$questions = [];
foreach($section['question'] as $question){
$questions[$question['question_name']][] = $question['question_description'];
}
@endphp
@foreach($questions as $question_name=>$question_descriptions)
<h5>{{ $question_name }}</h5>
@foreach($question_descriptions as $question_description)
<p class = "ms-3">{{ $question_description }}</p>
@endforeach
@endforeach
</div>
@endforeach
Я не пробовал, но думаю, что это сработает. Я храню вопросы и описания в массиве, где ключом является не индекс, а имя.
Возможно, вы могли бы сопоставить вопросы в группы по названию вопроса перед отправкой для просмотра. Что-то вроде этого (например, для начала):
$sections = collect($sections)->map(function($section, $key){
return [
"section" => $section,
"grouped_questions"=> collect($section["question"])->mapToGroups(function($question, $key){
return [$question['question_name'] => $question];
})->toArray()
];
});
Это даст вам вопросы, сгруппированные по их имени.