我想从数组$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();
尝试使用ussort,
function cmp($a, $b)
{
return strcmp($a->first_name, $b->first_name);
}
usort($administratorProvider, "cmp");
如果排序函数和调用函数在同一个类中,你应该使用:
usort($administratorProvider, array($this, "cmp"));
如果你想用其他键而不是名字来排序,只需替换它。
小建议:您可以使用排序函数的返回值来检查函数是否正确执行。