繁体   English   中英

按最大数字对 foreach 循环进行排序

[英]Sorting foreach loop by highest number

我需要从最高计数排序foreach,例如首先计数5,计数4秒,等等......

$i = 0;
$diseases = Diseases::find()->localized($lang)->all();
foreach ($diseases as $disease) {
    $selected_symptoms_array = explode(',', $symptoms);
    $symptoms_array = explode(',', $disease->symptoms_id);
    if (count(array_intersect($selected_symptoms_array, $symptoms_array)) > 0){
        $data[$i]['translation']['title'] = $disease->title;
        $data[$i]['id'] = $disease->id;
        $data[$i]['count'] = count(array_intersect($selected_symptoms_array, $symptoms_array));
        $i++;
    }
}

解决方案:

ArrayHelper::multisort($data, function ($item) {
    return isset($item['count']) ? $item['count'] : $item['id'];
}, SORT_DESC);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM