有关usort函数
关于usort函数
我自己学习时遇到了一些难以理解的部分,比如usort,我总结了一下。
从php.net官方网站上获得
usort ( array &$array , callable $callback )
被解释如下。
&$array :入力する配列
$callback: コールバック関数
简而言之,您可以通过将需要重新排序的数组放在第一个参数位置,并将定义排序顺序的比较函数放在第二个参数位置来进行排序。
使用方法
- 今回使う配列
$data = [
['name' => 'taguchi', 'score' => 80],
['name' => 'kikuchi', 'score' => 60],
['name' => 'hayashi', 'score' => 70],
['name' => 'tamachi', 'score' => 60],
];
- 自らが定義した比較関数
function scores($a, $b) {
if($a['score'] === $b['score']) {
return 0;
}
return $a['score'] > $b['score'] ? 1 : -1;
}
在比较函数中所进行的操作。
-
- 比べるscoreを$a, $bに置き換える
-
- scoreが同じ場合、0を返す
- $aが$bより大きい場合、1を小さい場合-1を返す。
如果为0的情况下,顺序不会产生影响;如果为1的情况下,会进位;如果为-1的情况下,会借位。
- usort関数による呼び出しとprint_rによる表示
usort($data, 'scores'); //並び替えた関数の表示
print_r($data);
- 並び替える前の配列の結果表示
Array
[name] => taguchi
[score] => 80
[name] => kikuchi
[score] => 60
[name] => hayashi
[score] => 70
[name] => tamachi
[score] => 60
- 並び替えた後の配列の結果表示
Array
[name] => kikuchi
[score] => 60
[name] => tamachi
[score] => 60
[name] => hayashi
[score] => 70
[name] => taguchi
[score] => 80
结束
我明白了usort函数的作用是对数组的内容进行排序。使用方法很简单,只需在()里放入想要排序的数组和定义排序顺序的函数即可。