ホームページ >バックエンド開発 >PHPチュートリアル >PHP 多次元配列のソート (usort、uasort)_PHP チュートリアル

PHP 多次元配列のソート (usort、uasort)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:36:441251ブラウズ

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

コードをコピーします コードは次のとおりです:

//多次元配列を定義します
$a = array(
array("sky", "blue"),
array("apple", "red"),
array("tree", "green"));
//カスタマイズされた配列比較関数。配列の 2 番目の要素に基づいて比較します。
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, 'my_compare');
foreach($a as $elem) {
echo "$elem[0] : $elem[1]
";
}

?>


結果は次のとおりです:


コードをコピーします コードは次のとおりです:
sky : blue
tree : 緑
リンゴ : 赤


連想配列:
bool uasort(array &$array, callback $cmp_function)
bool uksort(array &$array, callback $cmp_function)

uasort、uksort の使い方は usort と同じです。ここで、uasort() は値でソートする連想配列に適しており、uksort() は連想配列のキーでソートします。


コードをコピー コードは次のとおりです:
$a = array(
'Sunday' => array(0,'7th'),
'Friday' => array(5 ,'5th'),
' Tuesday'=> array(2,'2nd'));

function my_compare($a, $b) {
if ($a[1] < $b) [1] )
return -1;
else if ($a[1] == $b[1])
return 0;
else
return 1;
// の値の 2 番目の要素による$a 配列 (7 番目、5 番目、2 番目) を並べ替えます
uasort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]
";
}
//$a 配列のキーの 2 番目の文字 (r, u, u) でソートします
uksort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]
";

?>は:

火曜日 : 2 2日
金曜日 : 5 5日
日曜日 : 0 7日
金曜日 : 5 5日 日曜日 : 0 7日
火曜日 : 2 2日



http://www.bkjia.com/PHPjc/322116.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/322116.html技術記事数値インデックス配列: bool usort( array lt;?php //多次元配列を定義 $a = array( array("sky", "blue"), array("apple", "red"), array("tree", "green")); // カスタム配列比較関数...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。