如何从 php 中的 foreach 循环中删除重复值
How to remove repetitive values from foreach loop in php
您好我有一系列的部分,与该部分相关的问题如下所示
然后我遍历该数组并将内容输出到屏幕这里是代码
@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
结果是这样的
我怎样才能删除这个重复项question_name我只希望它写一次,例如,它写一个关键合同和下面的两个 question_description 给所有的人?
@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()
];
});
这将为您提供按名称分组的问题。
您好我有一系列的部分,与该部分相关的问题如下所示
然后我遍历该数组并将内容输出到屏幕这里是代码
@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
结果是这样的
我怎样才能删除这个重复项question_name我只希望它写一次,例如,它写一个关键合同和下面的两个 question_description 给所有的人?
@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()
];
});
这将为您提供按名称分组的问题。