PHP を使用して元のキー名を保持したまま配列内のオブジェクトを並べ替える

PHPz
リリース: 2024-05-04 17:12:02
オリジナル
406 人が閲覧しました

回答: PHP では、uasort() 関数を使用して、元のキー名を保持しながら、ユーザー定義の比較関数に従って配列内のオブジェクトを並べ替えます。詳細な説明: 構文: uasort($array, $value_compare_func) 比較関数のルール: 2 つの配列要素をパラメーターとして受け入れ、最初のパラメーターが 2 番目のパラメーターより小さい場合は 0 を返し、2 つのパラメーターが等しい場合は 1 を返します。最初のパラメータが 2 番目のパラメータより大きい場合 実際のケース: uasort() 関数を使用して、元のキー名を保持しながら、学生の年齢に従って $students 配列を並べ替えます。

使用 PHP 对数组中的对象进行排序,保留原始键名

PHP を使用して配列内のオブジェクトを並べ替える

PHP では、uasort()## を使用できます。 # 元のキー名を保持したまま配列内のオブジェクトを並べ替える関数。この関数は、ユーザー指定の比較関数を使用して、配列要素を昇順または降順に並べ替えます。

構文

uasort (配列 &$array、呼び出し可能な $value_compare_func): bool

ここで:

  • ##$array はソート対象の配列で、直接変更するために参照によって渡されます。
  • $value_compare_func は 2 つの値を引数として受け取るユーザー指定の比較関数です。昇順で、または降順で比較結果を返します。
比較関数

比較関数は次の規則に従う必要があります。

    2 つの配列要素を次のように受け取ります。パラメータ
  • 次のいずれかの値を返します。

      -1: 最初のパラメータは 2 番目のパラメータより小さい
    • 0: 2 つのパラメータは次のとおりです。等しい
    • 1: 最初のパラメータは 2 番目のパラメータより大きいです
  • 実際的なケース
##各生徒が持つオブジェクトを含む配列を考えてみましょう。名前と年齢属性。元のキー名を保持したまま、学生を年齢で昇順に並べ替えたいと考えています。

コード

<?php

class Student
{
    public $name;
    public $age;

    public function __construct($name, $age)
    {
        $this->name = $name;
        $this->age = $age;
    }
}

$students = [
    "John Doe" => new Student("John Doe", 25),
    "Jane Smith" => new Student("Jane Smith", 22),
    "Peter Parker" => new Student("Peter Parker", 28)
];

uasort($students, function ($a, $b) {
    return $a->age <=> $b->age;
});

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

出力

Array
(
    [Jane Smith] => Student Object
        (
            [name] => Jane Smith
            [age] => 22
        )
    [John Doe] => Student Object
        (
            [name] => John Doe
            [age] => 25
        )
    [Peter Parker] => Student Object
        (
            [name] => Peter Parker
            [age] => 28
        )
)
ログイン後にコピー
ご覧のとおり、学生は年齢順に昇順に並べ替えられており、元のキー名はそのまま残っています。

以上がPHP を使用して元のキー名を保持したまま配列内のオブジェクトを並べ替えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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