本文整理汇总了PHP中Criterion::collect方法的典型用法代码示例。如果您正苦于以下问题:PHP Criterion::collect方法的具体用法?PHP Criterion::collect怎么用?PHP Criterion::collect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Criterion
的用法示例。
在下文中一共展示了Criterion::collect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getEvaluation
public function getEvaluation($evaluation, $course = "*")
{
$reviewed = $this->student->context->find($evaluation);
$total = $reviewed->count();
$average = 1 / ($total ?: 1);
$accumulator = 0;
$collect = Criterion::collect(function ($criterion, $index) use($evaluation, $total, $reviewed, $average, &$accumulator) {
$map = [$evaluation => Data::FACTORY($evaluation, $reviewed->pick($index))->loadCriterion($criterion), 'schedule' => $this->student->section->schedule[$criterion['@assigned'] ?: $index], 'due' => $this->student->section->schedule[$criterion['@due'] ?: $index]];
$score = $map[$evaluation]->score;
if (($evaluation === 'quiz' || $evaluation === 'project') && $total > $criterion['@index']) {
$stats = $this->collective($this->student->section, $criterion);
if ($score > 0 && $stats['sd'] > 0) {
$z = ($score - $stats['mean']) / $stats['sd'];
$score = round($stats['wmean'] + $z * $stats['sd'], 2);
}
$stats['standard'] = $score * 100;
$map['stats'] = $stats;
}
$accumulator = $accumulator + $score * $average;
return $map;
}, "[@type='{$evaluation}' and @course = '{$course}']");
$weight = Assessment::$weight[$evaluation];
return new \bloc\types\dictionary(['list' => iterator_to_array($collect, false), 'score' => $average === 1 && $total == 0 ? $weight : max(0, round($accumulator * $weight, 1)), 'weight' => $weight]);
}