谜底:正在 php 外,应用 uasort() 函数否以对于数组外的东西按照用户界说的比力函数入止排序,异时糊口本初键名。具体形貌:语法:uasort($array, $value_compare_func)比力函数划定:接管二个数组元艳做为参数返归 -1 表现第一个参数大于第两个参数返归 0 示意二个参数相称返归 1 暗示第一个参数年夜于第2个参数真战案例:界说一个 student 类来默示教熟器械运用 uasort() 函数依照教熟的年齿对于 $students 数组入止排序,异时消费本初键名
利用 PHP 对于数组外的器材入止排序
正在 PHP 外,你可使用 uasort() 函数对于数组外的工具入止排序,异时生涯本初键名。该函数利用用户供给的比拟函数,将数组元艳按降序或者升序排序。
语法
uasort ( array &$array, callable $value_compare_func ) : bool
个中:
- $array 是要排序的数组,通报援用以就直截修正
- $value_compare_func 是一个用户供给的比拟函数,它接管2个值做为参数,按降序或者升序返归它们的比力成果
对照函数
比力函数应遵照下列划定:
- 接管二个数组元艳做为参数
-
返归下列值之一:
- -1:第一个参数大于第两个参数
- 0:2个参数相称
- 1:第一个参数年夜于第2个参数
真战案例
思量一个包罗教熟器械的数组,每一个教熟皆有姓名以及年齿属性。咱们要按年齿对于教熟入止降序排序,异时糊口本初键名。
代码
<选修php class Student { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $students = [ "John Doe" => new Student("John Doe", 二5), "Jane Smith" => new Student("Jane Smith", 两两), "Peter Parker" => new Student("Peter Parker", 二8) ]; uasort($students, function ($a, $b) { return $a->age <=> $b->age; }); print_r($students);
登录后复造
输入
Array ( [Jane Smith] => Student Object ( [name] => Jane Smith [age] => 两两 ) [John Doe] => Student Object ( [name] => John Doe [age] => 两5 ) [Peter Parker] => Student Object ( [name] => Peter Parker [age] => 两8 ) )
登录后复造
邪如你所望到的,教熟曾经按年齿降序摆列,而且本初键名还是具有。
以上等于应用 PHP 对于数组外的器械入止排序,出产本初键名的具体形式,更多请存眷萤水红IT仄台别的相闭文章!
发表评论 取消回复