我想从数组$ administratorProvider中排序内容(按first_name排序),我已尝试sort()
和asort()
函数。问题是不起作用,它保持显示从数据库中收到的数据
这是代码:
<select class="form-control selectpicker">
<?php
asort($administratorProvider);
echo '<option value="">Name</option>';
sort($administratorProvider);
foreach($administratorProvider as $administrator){
echo '<option value="'.$administrator->first_name.'">';
echo $administrator->first_name;
echo '</option>';
}
?>
</select>
这是$ administratorProvider创建的:
$administratorProvider = Administrator::model()->findAll();
答案 0 :(得分:0)
尝试使用usort,
function cmp($a, $b)
{
return strcmp($a->first_name, $b->first_name);
}
usort($administratorProvider, "cmp");
如果排序函数与调用函数在同一个类中,则应使用:
usort($administratorProvider, array($this, "cmp"));
如果您想使用其他键而不是名字进行排序,只需将其替换即可。
小建议:您可以使用排序函数的返回值来检查函数是否正确执行。 True意味着成功排序。