ホームページ  >  記事  >  バックエンド開発  >  PHP が usort 関数と uasort 関数を使用して多次元配列のソートを実装する方法の詳細な説明

PHP が usort 関数と uasort 関数を使用して多次元配列のソートを実装する方法の詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-26 13:05:552182ブラウズ

多次元配列をソートしたい場合、多次元配列の各要素は配列型であり、2 つの配列のサイズをどのように比較すればよいでしょうか?これはユーザーがカスタマイズする必要があります (各配列の最初の要素に基づいて比較するかどうか)。

Number

IndexArray: bool usort(array &$array, callback $cmp_function)
usort 関数は、指定された配列 (パラメータ 1) を指定された方法 (パラメータ 2) で並べ替えます。
多次元配列をソートしたい場合、多次元配列の各要素は配列型ですが、2 つの配列のサイズを比較するにはどうすればよいでしょうか?これはユーザーがカスタマイズする必要があります (各配列の最初の要素に基づいて比較するかどうか)。

<?php 
//定义多维数组 
$a = array( 
array("sky", "blue"), 
array("apple", "red"), 
array("tree", "green")); 
//自定义数组比较函数,按数组的第二个元素进行比较。 
function my_compare($a, $b) { 
if ($a[1] < $b[1]) 
return -1; 
else if ($a[1] == $b[1]) 
return 0; 
else 
return 1; 
} 
//排序 
usort($a, &#39;my_compare&#39;); 
//输出结果 
foreach($a as $elem) { 
echo "$elem[0] : $elem[1]<br />"; 
} 

?>

結果は次のようになります:


sky : blue 
tree : green 
apple : red

連想配列:

bool
uasort(array &$array, callback $cmp_function) bool
uksort(array &$array, callback $cmp_function)
uasort,並べ替える使用法は usort と同じで、uasort() は連想配列の値をソートし、uksort() は連想配列のキーをソートします。

<?php 
$a = array( 
&#39;Sunday&#39; => array(0,&#39;7th&#39;), 
&#39;Friday&#39; => array(5,&#39;5th&#39;), 
&#39;Tuesday&#39;=> array(2,&#39;2nd&#39;));
function my_compare($a, $b) { 
if ($a[1] < $b[1]) 
return -1; 
else if ($a[1] == $b[1]) 
return 0; 
else 
return 1; 
} 
//按$a数组的值的第二个元素(7th,5th,2nd)进行排序 
uasort($a, &#39;my_compare&#39;); 
foreach($a as $key => $value) { 
echo "$key : $value[0] $value[1]<br />"; 
} 
//按$a数组的关键字的第二个字符(r,u,u)进行排序 
uksort($a, &#39;my_compare&#39;); 
foreach($a as $key => $value) { 
echo "$key : $value[0] $value[1]<br />"; 
} 

?>

結果は次のとおりです:


Tuesday : 2 2nd 
Friday : 5 5th 
Sunday : 0 7th 
Friday : 5 5th 
Sunday : 0 7th 
Tuesday : 2 2nd

以上がPHP が usort 関数と uasort 関数を使用して多次元配列のソートを実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。