使用for循环,实现冒泡排序:
<?php $arr = array(5,3,6,2,8,10); for($i = count($arr)-1;$i>=0;$i--){ for($j = 0 ; $j < $i ; $j++){ if($arr[$j+1] > $arr[$j] ){ $aa = $arr[$j+1]; $arr[$j+1] = $arr[$j]; $arr[$j] = $aa; } } } print_r($arr); ?>
插入排序:
<?php $x = array(5,3,4,9,10,22,1,-2,4); echo "排序前数组:" . PHP_EOL; print_r($x); function SortInsert(array $arr) { for($i=0;$i<count($arr)-1;$i++) for($j=$i+1;$j<count($arr);$j++) { if($arr[$j]<$arr[$i]) { $temp=$arr[$j]; $arr[$j]=$arr[$i]; $arr[$i]=$temp; } } return $arr; } echo "排序后数组:" . PHP_EOL; $x=SortInsert($x); print_r($x); ?>
写两个冒泡排序:
<?php //升序 $myArray=array(10,11,9,12,8); for ($i=0;$i<count($myArray)-1;$i++){ for ($j=0;$j<count($myArray)-$i-1;$j++){ if($myArray[$j]>$myArray[$j+1]){ //把大的往后移 $temp=$myArray[$j]; $myArray[$j]=$myArray[$j+1]; $myArray[$j+1]=$temp; } } } print_r($myArray); echo "<br>"; //降序 $myArray2=array(11,12,13,9,14,15); for ($i=0;$i<count($myArray2)-1;$i++){ for ($j=0;$j<count($myArray2)-$i-1;$j++){ if ($myArray2[$j]<$myArray2[$j+1]){ //把小的数往后移 $temp=$myArray2[$j]; $myArray2[$j]=$myArray2[$j+1]; $myArray2[$j+1]=$temp; } } } print_r($myArray2); ?>
<?php // 从大到小排序 $numArray =array(3,2,6,5,8,10); $numCount = count($numArray); for($i=$numCount-1;$i>=0;$i--){ for($j=0;$j<$i;$j++){ if($numArray[$j]< $numArray[$j+1]){ $aa = $numArray[$j+1]; $numArray[$j+1]=$numArray[$j]; $numArray[$j]=$aa; } } } print_r($numArray); ?>
关于上面笔记中的回答:
疑问:“数组排序时发现 sort 与 rsort 排序完毕以后,var_dump 输出时原有 key 值丢失,变为数字索引。”
正解:对关联数组进行升序和降序排列应使用
下面就上面例题用asort()函数,根据关联数组的值,对数组进行升序排列
<?php $a=array("key1"=>"val1","key6"=>"val6","key3"=>"val1","key5"=>"val6","key4"=>"val8"); echo "asort(\$a)=".PHP_EOL; asort($a); var_dump($a); ?>
输出如下:
asort($a)= array(5) { ["key1"]=> string(4) "val1" ["key3"]=> string(4) "val1" ["key6"]=> string(4) "val6" ["key5"]=> string(4) "val6" ["key4"]=> string(4) "val8" }
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
589PHP For 循环
使用for循环,实现冒泡排序:
588PHP 数组排序
插入排序:
587PHP 数组排序
写两个冒泡排序:
586PHP 数组排序
585PHP 数组
关于上面笔记中的回答:
疑问:“数组排序时发现 sort 与 rsort 排序完毕以后,var_dump 输出时原有 key 值丢失,变为数字索引。”
正解:对关联数组进行升序和降序排列应使用
下面就上面例题用asort()函数,根据关联数组的值,对数组进行升序排列
输出如下: