全部
常见问题
产品动态
精选推荐

在 PHP 中各种排序方法

管理 管理 编辑 删除

在 PHP 中,排序是数据处理的重要功能。以下是几种常见的排序方法:


### **1. 冒泡排序(Bubble Sort)**

冒泡排序通过不断比较相邻元素并交换位置,使较大的元素逐渐“冒泡”到数组的末尾。

```php

function bubble_sort($array) {

   $count = count($array);

   for ($i = 0; $i < $count; $i++) {

       for ($j = $count - 1; $j > $i; $j--) {

           if ($array[$j] < $array[$j - 1]) {

               $tmp = $array[$j];

               $array[$j] = $array[$j - 1];

               $array[$j - 1] = $tmp;

           }

       }

   }

   return $array;

}

```


### **2. 插入排序(Insertion Sort)**

插入排序通过构建有序序列,将未排序数据插入到正确位置。

```php

function insert_sort($arr) {

   $count = count($arr);

   for ($i = 1; $i < $count; $i++) {

       $tmp = $arr[$i];

       $j = $i - 1;

       while ($arr[$j] > $tmp && $j >= 0) {

           $arr[$j + 1] = $arr[$j];

           $j--;

       }

       $arr[$j + 1] = $tmp;

   }

   return $arr;

}

```


### **3. 选择排序(Selection Sort)**

选择排序每次找到最小元素并放到排序序列的起始位置。

```php

function select_sort($arr) {

   $count = count($arr);

   for ($i = 0; $i < $count; $i++) {

       $k = $i;

       for ($j = $i + 1; $j < $count; $j++) {

           if ($arr[$k] > $arr[$j]) {

               $k = $j;

           }

       }

       if ($k != $i) {

           $tmp = $arr[$i];

           $arr[$i] = $arr[$k];

           $arr[$k] = $tmp;

       }

   }

   return $arr;

}

```


### **4. 快速排序(Quick Sort)**

快速排序采用分治策略,将数组分成两部分递归排序。

```php

function quick_sort($array) {

   if (count($array) <= 1) {

       return $array;

   }

   $key = $array[0];

   $left_arr = array();

   $right_arr = array();

   for ($i = 1; $i < count($array); $i++) {

       if ($array[$i] <= $key) {

           $left_arr[] = $array[$i];

       } else {

           $right_arr[] = $array[$i];

       }

   }

   $left_arr = quick_sort($left_arr);

   $right_arr = quick_sort($right_arr);

   return array_merge($left_arr, array($key), $right_arr);

}

```


### **5. PHP 内置排序函数**

PHP 提供了一些内置排序函数:

- `sort($array)`:对数组进行升序排序。

- `rsort($array)`:对数组进行降序排序。

- `asort($array)`:根据值对关联数组进行升序排序。

- `ksort($array)`:根据键对关联数组进行升序排序。

- `arsort($array)`:根据值对关联数组进行降序排序。

- `krsort($array)`:根据键对关联数组进行降序排序。


请登录后查看

小码二开 最后编辑于2025-05-24 10:42:15

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
22
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服