ホームページ >バックエンド開発 >PHPチュートリアル >PHP で「usort()」と「uasort()」を使用して多次元配列をソートするにはどうすればよいですか?

PHP で「usort()」と「uasort()」を使用して多次元配列をソートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 03:41:09482ブラウズ

How Can I Sort a Multi-Dimensional Array in PHP Using `usort()` and `uasort()`?

値による多次元配列のソート

多次元配列をソートする必要がある場合は、多くの状況が発生します。これは、usort() 関数内でユーザー定義の比較関数を使用することで実現できます。

usort() を使用した単一キーによる並べ替え

並べ替えするには指定された配列を「order」キーの値で表すと、ソート関数を次のように定義できます。

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}

usort($myArray, 'sortByOrder');

代わりに、匿名関数を使用することもできます:

usort($myArray, function($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
});

多次元ソート

このアプローチは拡張できます。多次元配列をソートします。たとえば、「順序」で並べ替えてから「サブ順序」で並べ替える場合:

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
    }
    return $retval;
});

uasort() によるキーの関連付けの保持

キーの関連付けを保持する必要がある場合、uasort()を使用します。比較については、マニュアルの配列ソート関数の比較を参照してください。

以上がPHP で「usort()」と「uasort()」を使用して多次元配列をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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