多次元配列を操作する場合、特定のキーの値に基づいて配列を並べ替える必要がある場合があります。たとえば、画像のリストを含む配列がある場合、それらを日付またはサイズで並べ替えることができます。
単一のキーで配列を並べ替えるにはキーを使用すると、usort() 関数を使用できます。この関数は、並べ替える配列と並べ替え関数の 2 つのパラメーターを取ります。並べ替え関数は、比較する 2 つの要素を表す 2 つのパラメーターを受け取る必要があります。
たとえば、次の配列があり、それを「order」キーの値で並べ替えたいとします。
Array ( [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 3 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Ready [order] => 1 ) )
この配列を並べ替えるには、次の並べ替え関数を使用できます。
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
次に、この関数をusort() 関数:
usort($myArray, 'sortByOrder');
並べ替え後、配列は「order」キーの値によって並べられます:
Array ( [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Ready [order] => 1 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 3 ) )
複数のキーで配列を並べ替えるには、次の方法を使用できます:
たとえば、次の配列があり、それを「order」キーの値で並べ替え、次に値で並べ替えたいとします。 "title" キーの:
Array ( [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 1 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Free [order] => 2 ) [3] => Array ( [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb [title] => Ready [order] => 3 ) )
この配列を並べ替えるには、次の並べ替え関数を使用できます:
以上がPHP で多次元配列を 1 つ以上のキーでソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。