ホームページ >バックエンド開発 >PHPチュートリアル >PHPでオブジェクトフィールドごとにオブジェクト配列を並べ替える方法は? (コード例)
この記事では、PHPでオブジェクト配列をオブジェクトフィールドでソートする実装方法を紹介します。
オブジェクトの配列が与えられた場合、その配列をオブジェクトと指定されたフィールドで並べ替えます。
メソッド:
usort() 関数は、指定された比較関数を使用して要素の配列を条件付きで並べ替えるのに使用される PHP の組み込み関数です。 usort() 関数を使用して、オブジェクト配列をオブジェクトフィールドごとに並べ替えることもできます。 usort() 関数を呼び出す場合、最初のパラメータはオブジェクト配列として使用され、2 番目のパラメータはコンパレータ関数として使用され、これに基づいて 2 つの配列オブジェクトを比較する必要があります。
PHP コード例:
<?php $gfg_array = array( array( 'score' => '100', 'name' => 'Sam', 'subject' => 'Data Structures' ), array( 'score' => '50', 'name' => 'Tanya', 'subject' => 'Advanced Algorithms' ), array( 'score' => '75', 'name' => 'Jack', 'subject' => 'Distributed Computing' ) ); class geekSchool { var $score, $name, $subject; public function geekSchool($data) { $this->name = $data['name']; $this->score = $data['score']; $this->subject = $data['subject']; } } function data2Object($data) { $class_object = new geekSchool($data); return $class_object; } function comparator($object1, $object2) { return $object1->score > $object2->score; } $school_data = array_map('data2Object', $gfg_array); print("原始对象数组:\n"); print_r($school_data); usort($school_data, 'comparator'); print("\n对象数组排序:\n"); print_r($school_data);
出力:
原始对象数组: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) 对象数组排序: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )
関連推奨事項: 「PHP チュートリアル 」 》
この記事は、PHP でオブジェクト配列をオブジェクトフィールドでソートする方法の紹介です。シンプルで理解しやすいです。困っている友人の役に立てば幸いです。
以上がPHPでオブジェクトフィールドごとにオブジェクト配列を並べ替える方法は? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。