一個簡單的給二維數組按照某個字段的值進行排序的算法

以前看到一道面試題,大概意思是儘量的寫出來給二維數組按照某個字段值排序的功能;好比說是下面數組結構:php

$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默認函數能不能解決,這樣你的代碼質量也會很高,這將是提高本身的一個很好途徑。post

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

相關文章
相關標籤/搜索