PHP在其他操作之前对数组进行排序

时间:2019-01-26 15:54:06

标签: php sorting

每个循环都在做,但数据混乱 我尝试了几种变体,但无法对子数组进行排序


在每个循环中运行

@foreach($record->criteria_list as $optKey=>$options)

我需要根据以下字段进行排序,并在for循环之前对主数组($ record)进行排序

$options->total_passed_user

其他9个示例(我已经尝试过)和以下2个示例是这些示例的一部分,它们正在错误输出...页面无法加载.... 是的,它是blade / laravel,但这没关系,因为我试图在循环和php formatting.page加载之前对这个数组进行排序。所有代码都可以正常工作,只是项目顺序不合适,并尝试根据$ options-重新排序> total_passed_user

@foreach($record->criteria_list as $optKey=>$options)

<?php
    $correctPercentage = ( $record->total_test_completed_count) ? round(($options->total_passed_user/$record->total_test_completed_count)*100):0;

等...

1 个答案:

答案 0 :(得分:0)

我认为usort函数将起作用。 http://php.net/manual/en/function.usort.php


示例1(在PHP≥7.0中):推荐的解决方案

usort($record->criteria_list, function ($a, $b) {
    return $a->total_passed_user <=> $b->total_passed_user;
});

...

@foreach($record->criteria_list as $optKey=>$options)

示例2:

function cmp_by_total_passed_user($a, $b) {
  return $a->total_passed_user - $b->total_passed_user;
}

...

usort($record->criteria_list, "cmp_by_total_passed_user");

....

@foreach($record->criteria_list as $optKey=>$options)