Php 拉威尔一分为二

Php 拉威尔一分为二,php,laravel,eloquent,Php,Laravel,Eloquent,问题是我分成了5个部分。如何通过$collection打印它们。如何获取拆分的$collection ExamsController@create $groups = $questions->split(5); $groups->toArray(); dd($groups); @foreach ($collections as $i => $collection) @foreach ($collection as $a => $question) var_dum

问题是我分成了5个部分。如何通过
$collection
打印它们。如何获取拆分的
$collection

ExamsController@create

$groups = $questions->split(5);
$groups->toArray();
dd($groups);
@foreach ($collections as $i => $collection)
@foreach ($collection as $a => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $b => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $c => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $d => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $e => $question)
    var_dump($question);
@endforeach
@endforeach
dd($groups)

Create.blade.php

@foreach($questions as $question)
 ......
@endforeach
更新

$groups = $questions->split(5);
$groups->toArray();
dd($groups);
@foreach ($collections as $i => $collection)
@foreach ($collection as $a => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $b => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $c => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $d => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $e => $question)
    var_dump($question);
@endforeach
@endforeach
@foreach($i=>$collection形式的集合)
@foreach($a=>$question的集合)
var_dump($问题);
@endforeach
@foreach($b=>$Q的集合) var_dump($问题); @endforeach
@foreach($c=>$Q的集合) var_dump($问题); @endforeach
@foreach($d=>$question的集合) var_dump($问题); @endforeach
@foreach($e=>$question的集合) var_dump($问题); @endforeach @endforeach
您正在将模型中返回的行拆分为5个集合。每个集合包含
x
数量的问题。您需要迭代您的集合以及集合中的问题

另一个
foreach
循环应该可以做到这一点

$collections = $questions->split(5);
我们可以想象,
$collections
的外观如下:

$collections = [   
    ['Q1?', 'Q2?'], // collection 1
    ['Q3?', 'Q4?'], // collection 2
    ['Q5?', 'Q6?'], // collection 3
    ['Q7?', 'Q8?'], // collection 4
    ['Q9?']         // collection 5
];
foreach ($collections as $i => $collection) {
    foreach ($collection as $j => $question) {
        echo "Collection $i, Question $j : $question \n";
    }
}
如前所述,在这种结构上迭代需要2个foreach循环

  • 首先迭代集合
  • 其次,迭代当前集合中的每个问题
看起来是这样的:

$collections = [   
    ['Q1?', 'Q2?'], // collection 1
    ['Q3?', 'Q4?'], // collection 2
    ['Q5?', 'Q6?'], // collection 3
    ['Q7?', 'Q8?'], // collection 4
    ['Q9?']         // collection 5
];
foreach ($collections as $i => $collection) {
    foreach ($collection as $j => $question) {
        echo "Collection $i, Question $j : $question \n";
    }
}
更新:

预期输出如下所示:

(注意
$i
$j
在每次迭代中是如何与
$collection
$question
相关的)

以下是PHP沙盒代码:

以下是Laravel关于这方面的官方文件:

在foreach内部制作另一个foreach您只需要2个
foreach
循环。外环和内环。看起来您对foreach循环中的
$key=>$value
语法感到困惑。(我使用了
$I=>$collection
$j=>$question
)。请参阅我的更新答案,其中包括预期的输出和我的PHP沙盒链接,以便您可以看到一切是如何工作的。