欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          在之前的文章《怎樣獲取數(shù)組中的鍵名?怎樣轉(zhuǎn)換鍵名的大小寫(xiě)?》中詳細(xì)的介紹了PHP中鍵名操作的獲取鍵名與轉(zhuǎn)換鍵名大小寫(xiě)的相關(guān)操作,本篇文章我們一起來(lái)看一下PHP中怎樣對(duì)多個(gè)數(shù)組進(jìn)行排序,希望對(duì)大家有幫助!

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          在上一篇文章中我們了解了想要獲取數(shù)組中所有的元素名需要通過(guò)array_keys函數(shù)來(lái)實(shí)現(xiàn),想要轉(zhuǎn)換數(shù)組鍵名的大小寫(xiě)需要通過(guò)array_change_key_case函數(shù)來(lái)進(jìn)行操作。這都是屬于數(shù)組操作的一部分,我們之前在《怎樣去給PHP數(shù)組進(jìn)行排序(圖文詳解)》中簡(jiǎn)單的介紹了一些。

          在PHP中怎樣才能對(duì)多個(gè)數(shù)組進(jìn)行排序?有怎樣隨機(jī)的對(duì)數(shù)組進(jìn)行隨機(jī)排序呢?在PHP中有內(nèi)置的array_multisort函數(shù)與shuffle函數(shù)能夠?qū)?shù)組進(jìn)行升序排列和隨機(jī)排序,下面我們一起來(lái)看一下吧。

          array_multisort函數(shù)-對(duì)多個(gè)數(shù)組進(jìn)行排序

          在PHP中array_multisort函數(shù)能夠輸入一個(gè)或者多個(gè)數(shù)組,函數(shù)會(huì)先給第一個(gè)數(shù)組排序,然后接著對(duì)下一組進(jìn)行排序。array_multisort函數(shù)的基本語(yǔ)法格式如下:

          array_multisort(array1,sorting order,sorting type,array2,array3...)

          其中需要注意的是:

          參數(shù)array1是必須要有的,是要進(jìn)行排序的數(shù)組,參數(shù)array2、3是可選的,也是要進(jìn)行排序的數(shù)組。參數(shù)sorting order也是一個(gè)可選的參數(shù),在默認(rèn)的情況下參數(shù)表示的是SORT_ASC,表示的是數(shù)組排序是升序,當(dāng)單數(shù)sorting order為SORT_DESC的時(shí)候,表示的是按降序排列。

          參數(shù)sorting type也是一個(gè)可選參數(shù),默認(rèn)情況下的值為SORT_REGULAR表示的是,數(shù)組排序按照常規(guī)順序排列。當(dāng)參數(shù)的值為SORT_NUMERIC 的時(shí)候表示的是將數(shù)組中的元素當(dāng)做數(shù)字來(lái)進(jìn)行處理。當(dāng)參數(shù)的值為SORT_STRING表示的是將數(shù)組中的元素當(dāng)做字符串來(lái)進(jìn)行處理。當(dāng)參數(shù)的值為SORT_LOCALE_STRING表示的是一顆通過(guò)setlocale函數(shù)來(lái)進(jìn)行更改的作為字符串處理。當(dāng)參數(shù)的值為SORT_NATURAL表示的是類(lèi)似 natsort() 的自然排序。

          使用array_multisort函數(shù)對(duì)字符串進(jìn)行排序,鍵名為字符串的元素,鍵名會(huì)保留,但是鍵名為數(shù)字的會(huì)被重新索引。這個(gè)索引規(guī)則還是一樣的。

          如果排序成功的話,返回的結(jié)果是true;如果排序失敗,返回的結(jié)果是false。

          下面我們通過(guò)示例來(lái)看一下array_multisort函數(shù)的基本用法,示例如下:

          <?php $a1=array("Dog","Cat"); $a2=array("Fw","Marry"); array_multisort($a1,$a2); print_r($a1); echo '<br/>'; print_r($a2); ?>

          輸出結(jié)果:

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          上述示例中,返回的結(jié)果是進(jìn)行了升序的排序,下面我們來(lái)看一下,當(dāng)兩個(gè)值相同的時(shí)候,輸出結(jié)果會(huì)有什么變化,示例如下:

          <?php $a1=array("Dog","Dog","Cat"); $a2=array("Pluto","Fw","Marry"); array_multisort($a1,$a2); print_r($a1); echo '<br/>'; print_r($a2); ?>

          輸出結(jié)果:

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          上述示例中,當(dāng)數(shù)組中的兩個(gè)元素都相同的時(shí)候,并不會(huì)被覆蓋,而是鍵名不同重新排序。

          下面我們?cè)趤?lái)看一個(gè)綜合的實(shí)例,當(dāng)我們合并兩個(gè)數(shù)組并且按照降序進(jìn)行排列,輸出結(jié)果會(huì)發(fā)生什么變化,示例如下:

          <?php $a1=array(1,30,15,7,25); $a2=array(4,30,20,41,66); $num=array_merge($a1,$a2); array_multisort($num,SORT_DESC,SORT_NUMERIC); print_r($num); ?>

          輸出結(jié)果:

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          上述中我們通過(guò)array_multisort函數(shù)能夠?qū)?shù)組元素進(jìn)行排序,下面我們來(lái)介紹一下shuffle函數(shù)。它能夠?qū)?shù)組打亂。

          shuffle函數(shù)-重新排序數(shù)組

          在PHP中既然有函數(shù)能夠?qū)?shù)組元素進(jìn)行有序的排序,那同樣的也有辦法能夠?qū)?shù)組進(jìn)行重新排序,也就是將數(shù)組打亂。shuffle函數(shù)的基本語(yǔ)法結(jié)構(gòu)如下:

          shuffle(array)

          其中參數(shù)array就是需要進(jìn)行重新排序的數(shù)組,shuffle() 函數(shù)把數(shù)組中的元素按隨機(jī)順序重新排列。數(shù)組中原來(lái)的鍵名會(huì)被刪除,新的數(shù)組會(huì)有新的鍵名。

          函數(shù)如果排序成功,返回的結(jié)果是true,如果失敗,返回的結(jié)果是flase。

          下面我們通過(guò)示例來(lái)看一下shuffle函數(shù)的使用,示例如下:

          <?php $my_array = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"purple"); shuffle($my_array); print_r($my_array); ?>

          輸出結(jié)果:

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          怎樣解決PHP中數(shù)組的排序和打亂問(wèn)題?

          上述示例中,通過(guò)shuffle函數(shù)將數(shù)組進(jìn)行重新排列,并且每執(zhí)行一次數(shù)組的排列順序就會(huì)改變。

          大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)