溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決PHP中數(shù)組的排序和打亂問題

發(fā)布時間:2021-11-09 09:34:36 來源:億速云 閱讀:364 作者:iii 欄目:編程語言

這篇文章主要介紹“如何解決PHP中數(shù)組的排序和打亂問題”,在日常操作中,相信很多人在如何解決PHP中數(shù)組的排序和打亂問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何解決PHP中數(shù)組的排序和打亂問題”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

如何解決PHP中數(shù)組的排序和打亂問題

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

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

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

其中需要注意的是:

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

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

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

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

下面我們通過示例來看一下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ù)組的排序和打亂問題

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

<?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ù)組的排序和打亂問題

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

下面我們在來看一個綜合的實例,當(dāng)我們合并兩個數(shù)組并且按照降序進(jìn)行排列,輸出結(jié)果會發(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ù)組的排序和打亂問題

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

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

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

shuffle(array)

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

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

下面我們通過示例來看一下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ù)組的排序和打亂問題

如何解決PHP中數(shù)組的排序和打亂問題

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

到此,關(guān)于“如何解決PHP中數(shù)組的排序和打亂問題”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI