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

alwayscomebacktoyourlove PHP 多次元配列ソート usort、uasort

WBOY
WBOYオリジナル
2016-07-29 08:43:071419ブラウズ

数値インデックス配列:
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 と同じです。 () は連想配列の値 (value) をソートし、uksort() は連想配列のキー (key) をソートします。


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

$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 番目の要素を押します並べ替える配列 (7 番目、5 番目、2 番目)
uasort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value [1]< ;br />";
}
//$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日
以上、alwayscomebacktoyourlove の PHP 多次元配列ソート usort と uasort を紹介しました。alwayscomebacktoyourlove の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。


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