background image

php 中的一些数组排序方法

php 中的一些数组排序方法分享,需要的朋友可以参考下
A.内部排序(直接加载到内存进行排序):包括交换式排序(冒泡和快速法)、选择式排序、
插入式排序

 

B.外部排序(因数据量大,需借助外部存储进行排序):包括合并排序、直接合并排序 
 

【冒泡排序:从后向前,依次比较相邻元素的排序码,若发现逆序则交换,一轮结束后,再

来一轮,直到所有相邻数无逆序,即按顺序排完】

 

代码如下

:

 

function

 maoPao(

$arr

,

$style

)

//【默认传递的是值,不是地址。如果在$arr 前加个&,则和$arr1

指向同一个地址,函数外的

$arr1 也被排好了】 

$temp

=0; 

$flag

=false; 

for

(

$i

=0;

$i

<

count

(

$arr

)-1;

$i

++) 

for

(

$j

=0;

$j

<

count

(

$arr

)-1-

$i

;

$j

++) 

if

(

$style

=='bts') 

$op

=

$arr

[

$j

]<

$arr

[

$j

+1]; 

else

 

if

(

$style

=='stb') 

$op

=

$arr

[

$j

]>

$arr

[

$j

+1]; 

if

(

$op

$temp

=

$arr

[

$j

]; 

$arr

[

$j

]=

$arr

[

$j

+1]; 

$arr

[

$j

+1]=

$temp

$flag

=true; 


if

(

$flag

==false) 

break

;

//当一次横向循环下来 flag==false;说明纵向循环里每次相邻元素比较大小时 if 条件均

不满足,即从小到大已排好,无需再横向循环

 


foreach

 (

$arr

 

as

 

$key

 => 

$value

echo

 

$value

.',';