日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 求数组合集,PHP数组排序函数合集 以及它们之间的联系分析

發(fā)布時(shí)間:2025/1/21 php 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 求数组合集,PHP数组排序函数合集 以及它们之间的联系分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下邊提到的幾個(gè)數(shù)組函數(shù)的排序有一些共性:1 數(shù)組被作為排序函數(shù)的參數(shù),排序以后,數(shù)組本身就發(fā)生了改變,函數(shù)的返回值為bool類型。

2 函數(shù)名中出現(xiàn)單a表示association,含義為,在按值排序的過程中,保持key=>value的對(duì)應(yīng)關(guān)系不變

3 函數(shù)名中出現(xiàn)單k表示key,含義為,在按值排序的過程中按照數(shù)組key而不是數(shù)組的值排序

4 函數(shù)名中出現(xiàn)單r的表示reverse,含義為,按照跟不加r的相反的順序排列

5 函數(shù)名中出現(xiàn)單u的表示user-defined,含義為,使用用戶自定義函數(shù)排序,如果函數(shù)的邏輯是參數(shù)1

--------------------sort函數(shù)升序排序--------------------------------

bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] )

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

var_dump($fruits);

?>

結(jié)果:

array

0 =>

string

'apple' (length=5)

1 =>

string

'banana' (length=6)

2 =>

string

'lemon' (length=5)

3 =>

string

'orange' (length=6)

--------------------rsort降序排列--------------------

$fruits = array("lemon", "orange", "banana", "apple");

rsort($fruits);

var_dump($fruits);

?>

結(jié)果:

array

0 =>

string

'orange' (length=6)

1 =>

string

'lemon' (length=5)

2 =>

string

'banana' (length=6)

3 =>

string

'apple' (length=5)

---------------asort按照二維數(shù)組值的升序排列(保持key=>value的關(guān)聯(lián)關(guān)系)-----------

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

asort($fruits);

var_dump($fruits);

?>

結(jié)果:

array

'c' =>

string

'apple' (length=5)

'b' =>

string

'banana' (length=6)

'd' =>

string

'lemon' (length=5)

'a' =>

string

'orange' (length=6)

---------arsort按照二維數(shù)組值的降序排列(保持key=>value的關(guān)聯(lián)關(guān)系)---------

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

arsort($fruits);

var_dump($fruits);

?>

結(jié)果

array

'a' =>

string

'orange' (length=6)

'd' =>

string

'lemon' (length=5)

'b' =>

string

'banana' (length=6)

'c' =>

string

'apple' (length=5)

--------------------ksort按照數(shù)組的key升序排列--------------

$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

ksort($fruits);

var_dump($fruits);

?>

結(jié)果

array

'a' =>

string

'orange' (length=6)

'b' =>

string

'banana' (length=6)

'c' =>

string

'apple' (length=5)

'd' =>

string

'lemon' (length=5)

---------------------krsort按照數(shù)組key的降序排列-----------------------

$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

krsort($fruits);

var_dump($fruits);

?>

array

'd' =>

string

'lemon' (length=5)

'c' =>

string

'apple' (length=5)

'b' =>

string

'banana' (length=6)

'a' =>

string

'orange' (length=6)

----------------usort函數(shù)按照用戶自定義的函數(shù)排序----------------

function cmp($a, $b)

{

if ($a == $b) {

return 0;

}

return ($a < $b) ? -1 : 1;

}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

var_dump($a);

?>

結(jié)果:

array

0 =>

int

1

1 =>

int

2

2 =>

int

3

3 =>

int

5

4 =>

int

6

-----------------uksort使用自定義函數(shù)按照數(shù)組的key排序-----------------

function cmp($a, $b)

{

$a = preg_replace('@^(a|an|the) @', '', $a);

$b = preg_replace('@^(a|an|the) @', '', $b);

return strcasecmp($a, $b);

}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

var_dump($a);

?>

結(jié)果:

array

'an apple' =>

int

3

'a banana' =>

int

4

'the Earth' =>

int

2

'John' =>

int

1

--------------uasort將數(shù)組用自定義函數(shù)按照value排序,保持索引關(guān)系不變---------

// Comparison function

function cmp($a, $b) {

if ($a == $b) {

return 0;

}

return ($a < $b) ? -1 : 1;

}

// Array to be sorted

$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);

var_dump($array);

// Sort and print the resulting array

uasort($array, 'cmp');

var_dump($array);

?>

結(jié)果:

array

'a' =>

int

4

'b' =>

int

8

'c' =>

int

-1

'd' =>

int

-9

'e' =>

int

2

'f' =>

int

5

'g' =>

int

3

'h' =>

int

-4

array

'd' =>

int

-9

'h' =>

int

-4

'c' =>

int

-1

'e' =>

int

2

'g' =>

int

3

'a' =>

int

4

'f' =>

int

5

'b' =>

int

8

-------------------array_multisort排序多個(gè)數(shù)組或多維數(shù)組---------

$ar = array(

array("10", 11, 100, 100, "a"),

array(?? 1,? 2, "2",?? 3,?? 1)

);

array_multisort($ar[0], SORT_ASC, SORT_STRING,

$ar[1], SORT_NUMERIC, SORT_DESC);

var_dump($ar);

?>

結(jié)果:

array

0 =>

array

0 =>

string

'10' (length=2)

1 =>

int

100

2 =>

int

100

3 =>

int

11

4 =>

string

'a' (length=1)

1 =>

array

0 =>

int

1

1 =>

int

3

2 =>

string

'2' (length=1)

3 =>

int

2

4 =>

int

1

//說明:

1 上例中:$ar數(shù)組優(yōu)先按照$ar[0]的字符串值升序排列,如果字符串值相等,再按照$ar[1]數(shù)組的數(shù)字值降序排列。

2 array_multisort函數(shù)的任意一個(gè)位置的參數(shù)如果是數(shù)組,表示排序時(shí)用的值,

如果有多個(gè)數(shù)組參數(shù),優(yōu)先按照前邊的數(shù)組值進(jìn)行排序,如果是常量,例如

SORT_ASC, SORT_DESC, SORT_REGULAR,SORT_NUMERIC, SORT_STRING.

表示排序方法(數(shù)組取值前優(yōu)先)。

==========================================================================================

PHP二維數(shù)組排序函數(shù)PHP一維數(shù)組的排序可以用sort(),asort(),arsort()等函數(shù),但是PHP二維數(shù)組的排序需要自定義。

以下函數(shù)是對(duì)一個(gè)給定的二維數(shù)組按照指定的鍵值進(jìn)行排序,先看函數(shù)定義:

function array_sort($arr,$keys,$type='asc'){

$keysvalue = $new_array = array();

foreach ($arr as $k=>$v){

$keysvalue[$k] = $v[$keys];

}

if($type == 'asc'){

asort($keysvalue);

}else{

arsort($keysvalue);

}

reset($keysvalue);

foreach ($keysvalue as $k=>$v){

$new_array[$k] = $arr[$k];

}

return $new_array;

}

它可以對(duì)二維數(shù)組按照指定的鍵值進(jìn)行排序,也可以指定升序或降序排序法(默認(rèn)為升序),用法示例:

$array = array(

array('name'=>'手機(jī)','brand'=>'諾基亞','price'=>1050),

array('name'=>'筆記本電腦','brand'=>'lenovo','price'=>4300),

array('name'=>'剃須刀','brand'=>'飛利浦','price'=>3100),

array('name'=>'跑步機(jī)','brand'=>'三和松石','price'=>4900),

array('name'=>'手表','brand'=>'卡西歐','price'=>960),

array('name'=>'液晶電視','brand'=>'索尼','price'=>6299),

array('name'=>'激光打印機(jī)','brand'=>'惠普','price'=>1200)

);

$ShoppingList = array_sort($array,'price');

print_r($ShoppingList);

上面是對(duì)$array這個(gè)二維數(shù)組按照'price'從低到高的排序。

輸出結(jié)果:(略)。

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的php 求数组合集,PHP数组排序函数合集 以及它们之间的联系分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。