首頁 > 後端開發 > php教程 > PHP usort()

PHP usort()

WBOY
發布: 2024-08-29 13:05:13
原創
1037 人瀏覽過

此函數用於在 PHP 中對陣列進行排序。我們可以根據我們的邏輯和需求對陣列進行排序,這意味著它使用使用者定義的函數對定義的陣列進行排序。此外,它還會從陣列中刪除所有舊鍵,並將新鍵指派給陣列的每個元素。這些新鍵將是一個從 0 開始到陣列中存在的元素數量的整數。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

函數接受兩個參數作為輸入。無論如何,PHP 有許多內建函數可用於對陣列元素進行排序,但在這裡,我們可以傳遞使用者定義的函數來對陣列元素進行排序。這是該功能的優點之一。讓我們詳細討論一下語法。見下文;

例如:

boolean usort( array, function)
登入後複製

正如我們所看到的,這個函數接受兩個參數作為輸入。一種是我們要排序的數組,一種是使用者定義的函數,該函數將決定數組元素的排序;簡而言之,它會如何表現。現在我們將看到一個練習範例,以盡可能更好地理解文法。

例如:

usort( $myArr, "demo_sort_function");
登入後複製

在上面的語法中,我們將陣列和使用者定義的函數傳遞給 usort() 函數。我們將在接下來的部分詳細討論該功能。

usort() 函數在 PHP 中如何運作?

到目前為止,我們知道 usort() 函數用於以使用者定義的方式對陣列進行排序。我們可以定義自己的邏輯來對陣列元素進行排序。 PHP 提供了許多對陣列進行排序的內建函數,但這裡的一個好處是我們可以在這裡編寫排序演算法來進行排序。此外,此函數將刪除陣列元素的所有舊鍵,並為每個元素指派一個新鍵。此鍵排序將從 0 開始,依此類推,直到函數的長度。現在我們將詳細討論該函數作為輸入的參數以及函數的傳回類型。見下文

函數有兩個參數,如下:

1) $array (第一個參數): 這是此函數作為輸入的第一個參數。我們可以定義一個陣列並將其傳遞到這裡。這將是我們想要以某種新方式排序的陣列。

2) comparision_function (第二個參數): 這是該函數作為參數的第二個參數,這將是包含排序邏輯的使用者定義函數它。我們可以定義一個函數並從該 usort() 函數中呼叫使用者定義的函數。我們需要像這樣在「function_name」中傳遞名稱。下面我們呼叫一個函數,依照名稱對陣列進行排序。

例如。 :

usort($arr, "sortByName")
登入後複製

3) Boolean(傳回類型):此函數的傳回類型是 Boolean,Boolean 表示值 TRUE 或 FALSE,取決於函數的結果。該函數在失敗的情況下將傳回 FALSE,在成功的情況下傳回 TRUE。現在我們將看到一個實踐範例,了解其實際工作原理以及在何處可以使用此功能。這是初學者了解其流程和工作原理的練習範例。見下文;

例如 :

function my_function_to_sort($a1,$b1)
{
if ($a1==$b1) return 0;
if ($a1 < $b1)
return 1;
else
return -1;
}
$myarr=array(40, 50, 20, 10, 100, 500, 20, 18);
usort($myarr,"my_function_to_sort");
登入後複製

在上面的範例中,我們建立了一個名為「myarr」的數組,它將包含我們要排序的所有元素。這裡我們為這個陣列分配了一些值,如 40, 50, 20, 10, 100, 500, 20, 18,並使用了 PHP 中已經提供的陣列函數。此外,我們在這裡建立了一個名為「my_function_to_sort」的函數,該函數負責根據我們傳回的條件對陣列元素進行排序。在這裡面,我們主要寫了要傳遞的兩個值大於、小於或等於的邏輯。在此基礎上,wit 會將元素放入陣列中。

現在我們將詳細了解條件。這裡的1、-1、0有什麼意義呢?讓我們詳細討論一下它們。見下文;

1) 0: 如果兩個元素相等則這裡回傳 0。

2) 1: 從上面的條件我們可以看出,如果a1小於b1則回傳1。

3) -1: 從上面的條件可以看出,如果a1大於b1則回傳-1。

整個邏輯將負責將整數陣列依升序或降序排序。在上面的程式中,它會為我們對陣列元素進行降序排序。

After this, we are calling usort() function, and here we pass our own parameters here, and that is named ‘$myarr’ ‘my_function_to_sort’. This we can say a custom sorting that we have implemented by using the usort ()
function.

Examples of PHP usort()

Lets us discuss the examples of PHP usort().

Example 1

1) In this example, we are sorting an array of an integer using usort() function available in PHP. This is a custom sort, and we are sorting in descending order.




Demo for usort() funciton in PHP

******************** START ***************

"; echo "

values are ::

"; echo "
"; $lenarr=count($myarr); for($i=0;$i<$lenarr;$i++) { echo "Inside loop printing values :::"; echo $myarr[$i]; echo "
"; } ?>

******************** END ***************

登入後複製

Output:

PHP usort()

Example 2

In this example, we are trying to sort an array of the string by using the usort() function available in PHP. Here we are sorting in ascending order or natural order.

<!DOCTYPE html>
<html>
<body>
<p>Demo for usort() funciton in PHP</p>
<p>******************** START ***************</p>
<?php
function my_function_to_sort($a1,$b1)
{
if ($a1==$b1) return 0;
if ($a1 < $b1)
return -1;
else
return 1;
}
$myarr=array("red","yellow", "orange", "black","pink","purple","brown");
usort($myarr,"my_function_to_sort");
echo "<br>";
echo "<p>values are ::</p>";
echo "<br>";
$lenarr=count($myarr);
for($i=0;$i<$lenarr;$i++)
{
echo "Inside loop printing values :::";
echo $myarr[$i];
echo "<br>";
}
?>
<p>******************** END ***************</p>
</body>
</html>
登入後複製

Output:

PHP usort()

Conclusion

By using this function, we can sort the array in a custom order, or we can say, in a user-defined manner. This can be called a new manner sorting. By using this, we can sort any number of elements in the array and apply our own logic to sort the data in ascending and descending or natural order.

以上是PHP usort()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板