您当前的位置:首页 > 百宝箱

php usort

2024-09-30 21:06:44 作者:石家庄人才网

石家庄人才网今天给大家分享《php usort》,石家庄人才网小编对内容进行了深度展开编辑,希望通过本文能为您带来解惑。

PHP usort 函数用于对数组排序,并保持索引关系。与 sort() 函数不同的是,usort() 函数允许您自定义排序规则。

语法

```phpusort(array, my_comparison_function)```

参数说明:

  • array: 必需。规定要排序的数组。
  • my_comparison_function: 必需。规定比较数组元素的函数。该函数需要接收两个参数,并根据比较结果返回以下值:
    • 如果第一个参数小于第二个参数,则返回一个小于 0 的整数。
    • 如果第一个参数等于第二个参数,则返回 0。
    • 如果第一个参数大于第二个参数,则返回一个大于 0 的整数。

自定义比较函数

自定义比较函数是 usort() 函数的核心,它决定了数组元素如何排序。以下是一个简单的例子,演示如何创建一个比较函数来按值对数组进行降序排序:

```php<?phpfunction my_sort($a,$b){if ($a==$b) return 0;return ($a>$b)?-1:1;}$arr=array(4,2,8,6,1,5,3,7);usort($arr,"my_sort");print_r($arr);?>```

输出结果:

```Array([0] => 8[1] => 7[2] => 6[3] => 5[4] => 4[5] => 3[6] => 2[7] => 1)```

在上面的例子中,`my_sort()` 函数比较了两个元素 `$a` 和 `$b`。如果 `$a` 大于 `$b`,它返回 -1,导致 `$a` 排在 `$b` 之前。反之,如果 `$a` 小于 `$b`,则返回 1,导致 `$b` 排在 `$a` 之前。如果 `$a` 等于 `$b`,则返回 0,保持它们原来的顺序。

使用 usort() 排序多维数组

usort() 函数也可以用于排序多维数组。例如,假设您有一个存储学生信息的数组,您想按年龄对学生排序。您可以创建一个自定义比较函数,该函数比较每个学生数组中的“年龄”元素:

```php<?phpfunction sortByAge($a, $b) { return $a['age'] - $b['age'];}$students = array( array("name"=>"张三", "age"=>20), array("name"=>"李四", "age"=>22), array("name"=>"王五", "age"=>19));usort($students, 'sortByAge');print_r($students);?>```

输出结果:

```Array([0] => Array([name] => 王五[age] => 19)[1] => Array([name] => 张三[age] => 20)[2] => Array([name] => 李四[age] => 22))```

在上面的例子中,`sortByAge()` 函数比较了两个学生数组 `$a` 和 `$b` 中的 “age” 元素。如果 `$a['age']` 小于 `$b['age']`,它返回一个负数,导致 `$a` 排在 `$b` 之前

版权声明:《php usort》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/3031.html