PHP を使用した多次元配列のソート

WBOY
リリース: 2023-06-06 08:34:02
オリジナル
1621 人が閲覧しました

PHP プログラミングでは、価格による並べ替え、アルファベット順の並べ替えなど、さまざまなニーズを満たすために多次元配列を並べ替える必要があることがよくあります。ただし、多次元配列のソートは 1 次元配列よりも複雑です。この記事では、PHP を使用して多次元配列をソートする方法を紹介します。

  1. PHP のソート関数

まず、PHP のソート関数、sort()、rsort()、asort()、arsort() を理解する必要があります。 、ksort()、krsort()、uksort()、usort()。これらの関数は 1 次元配列のソートに適していますが、多次元配列をソートする場合は、コールバック関数を使用して配列をソートする必要があります。

  1. コールバック関数の定義

コールバック関数は、他の関数にパラメータとして渡される関数を指します。 PHP では、コールバック関数は通常、配列の並べ替え、フィルター、走査などに使用されます。無名関数またはカスタム名の関数をコールバック関数として使用できます。

次に、無名関数をコールバック関数として使用する例を示します。

$array = array(
    array('price' => 45.50),
    array('price' => 15.00),
    array('price' => 20.15),
    array('price' => 25.00),
    array('price' => 90.10),
    array('price' => 9.99),
);

usort($array, function($a, $b) {
    if ($a['price'] == $b['price']) return 0;
    return ($a['price'] < $b['price']) ? -1 : 1;
});

print_r($array);
ログイン後にコピー

出力結果は次のとおりです。

Array (
    [0] => Array ( [price] => 9.99 )
    [1] => Array ( [price] => 15 )
    [2] => Array ( [price] => 20.15 )
    [3] => Array ( [price] => 25 )
    [4] => Array ( [price] => 45.5 )
    [5] => Array ( [price] => 90.1 )
)
ログイン後にコピー
  1. コールバック関数を使用して、多次元配列の並べ替え

多次元配列を並べ替える場合は、コールバック関数を使用して配列の並べ替え規則を定義する必要があります。コールバック関数で複数のソート条件を定義し、優先順位に従って配列要素の値を 1 つずつ比較して、ソートの目的を達成できます。

次は、コールバック関数を使用して多次元配列を並べ替える例です:

$array = array(
    array('name' => 'John', 'age' => 25, 'score' => 80),
    array('name' => 'Mary', 'age' => 28, 'score' => 90),
    array('name' => 'Bob', 'age' => 20, 'score' => 95),
    array('name' => 'Jack', 'age' => 30, 'score' => 85),
    array('name' => 'Lisa', 'age' => 22, 'score' => 85),
);

// 按照年龄降序、分数升序、名字升序排序
usort($array, function($a, $b) {
    if ($a['age'] == $b['age']) {
        if ($a['score'] == $b['score']) {
            return strcmp($a['name'], $b['name']);
        } else {
            return ($a['score'] > $b['score']) ? 1 : -1;
        }
    } else {
        return ($a['age'] < $b['age']) ? 1 : -1;
    }
});

print_r($array);
ログイン後にコピー

出力結果は次のとおりです:

Array (
    [0] => Array ( [name] => Mary [age] => 28 [score] => 90 )
    [1] => Array ( [name] => Jack [age] => 30 [score] => 85 )
    [2] => Array ( [name] => Lisa [age] => 22 [score] => 85 )
    [3] => Array ( [name] => John [age] => 25 [score] => 80 )
    [4] => Array ( [name] => Bob [age] => 20 [score] => 95 )
)
ログイン後にコピー
  1. 要約

この記事では、PHP を使用して多次元配列のソートを実装する方法を紹介します。まず、PHP のソート関数を理解してから、コールバック関数を使用して多次元配列をソートします。実際の開発では、ソートは非常に一般的な機能であり、多次元配列をソートすることで、さまざまなニーズに適切に対応できるようになります。

以上がPHP を使用した多次元配列のソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!