PHP排序选择器


PHP sort selectpicker

我想从数组$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"));

如果你想用其他键而不是名字来排序,只需替换它。

小建议:您可以使用排序函数的返回值来检查函数是否正确执行。