一个简单的给二维数组按照某个字段的值进行排序的算法

之前看到一道面试题,大概意思是尽可能的写出来给二维数组按照某个字段值排序的功能;比如说是下面数组结构:

$users = [
    ['name' => 'Alice', 'age' => 15],
    ['name' => 'Blob', 'age' => 19],
    ['name' => 'James', 'age' => 14],
];

按照年龄对用户进行排序;大家第一眼感觉应该是用循环,然后用冒泡排序之类的去计算;但这一道题显然不是去考察大众都能想到的; 它应该是想考一下求职者对php基本函数的用法,也就是 sort ksort usort 之类的函数;

简单写一下:

usort($users, function($prev, $next){
        return $prev['age'] > $next['age'];
});

感兴趣的可以执行下看结果;

php语法虽然让人很难受,但不得不说很多函数的功能确实很细节,所以大家在看到或者工作中遇到类似的需求,可以先尝试下php默认函数能不能解决,这样你的代码质量也会很高,这将是提升自己的一个很好途径。

本文首发地址: https://www.phpdish.com/posts/76

相关推荐