<?php /** * 冒泡排序算法 * @param array $arr * @return array */ function bubble_sort($arr) { // 判断参数是否为数组,且不为空 if (!is_array($arr) || empty($arr)) { return $arr; } // 循环需要冒泡的轮数 for ($i = 1, $len = count($arr); $i < $len; $i++) { // 循环每轮需要比较的次数 for ($j = 0; $j < $len - $i; $j++) { // 大的数字 往后挪 if ($arr[$j] > $arr[$j + 1]) { // 当第一个数比第二数大,先把小的数保存起来 $temp = $arr[$j + 1]; // 把大的索引值改为大值 $arr[$j + 1] = $arr[$j]; // 然后把小的值赋给索引小的即可 $arr[$j] = $temp; } } } var_dump($arr); } $arr = [1,5,6,8,4,3,2]; bubble_sort($arr);