php - 在PHP数组中对列进行排序

标签 php arrays asort ksort

我正在尝试按以下方式构建的以下数据结构中的列排序:

 $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()?我认为我应该使用kso​​rt(),因为它可以在键上工作。例如,我尝试了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/

相关文章:

php - JSON 和 JSONP 有什么区别?

PHP - 将这个字符串转为 : "adc 25...123.50 xyz" into 2 variables: "25" and "123.50"?

php - MySQL Distinct 子句问题

c - 排序数组C程序

php - 在 PHP 中对具有特殊字符的数组进行排序

php - Docker容器的网关Nginx错误

arrays - Ruby 迭代器 upto 方法对数组进行编号

c - 为什么这会给我一个段错误?

PHP 的 asort 不能正常工作?

PHP:降序排序不起作用?