我正在尝试按以下方式构建的以下数据结构中的列排序:
$counter = 1;
$entity_list = array();
foreach($result as $rec){
$entity_list[$counter]['student_first_name'] = $rec->firstname;
$entity_list[$counter]['student_last_name'] = $rec->lastname;
$entity_list[$counter]['course_name'] = $rec->fullname;
.
.
$counter++;
}//end foreach
这是$ entity_list数据结构的var_dump。
array (size=150)
1 =>
array (size=3)
'student_first_name' => string 'Jane' (length=6)
'student_last_name' => string 'Smith' (length=7)
'course_name' => string 'Algebra 1A-MOD' (length=14)
2 =>
array (size=3)
'student_first_name' => string 'Fred' (length=6)
'student_last_name' => string 'Jones' (length=7)
'course_name' => string 'Algebra 1A-MOD' (length=14)
.
.
.
如何在此结构上使用asort()或ksort()?我认为我应该使用ksort(),因为它可以在键上工作。例如,我尝试了ksort($ entity_list,'student_last_name')或asort($ entity_list,'current_grade')。
谢谢。
最佳答案
您可以使用uasort
uasort($entity_list, 'mySort');
function mySort($a, $b) {
if($a['student_last_name'] == $b['student_last_name']) {
return 0;
}
return ($a['student_last_name'] < $b['student_last_name']) ? -1 : 1;
}
但是,如果您的数据来自数据库,则使用 ORDER BY 会容易得多,也更轻松。
关于php - 在PHP数组中对列进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13238626/