特定のプロパティに基づいてオブジェクトの配列を並べ替える
オブジェクトの配列を処理する場合、特定のフィールドに基づいて並べ替えることは、データ管理。これを実現するには、比較動作のカスタマイズを可能にする usort 関数を利用できます。
usort によるカスタム比較関数:
カスタム比較関数を定義するにはusort では、次のパターンに従います:
function cmp($a, $b) { return strcmp($a->name, $b->name); } usort($your_data, "cmp");
この例では、比較は次の "name" プロパティに基づいています。オブジェクト。 「name」を関連するプロパティに置き換えることができます。
代替コールバック オプション:
専用関数の使用とは別に、usort は任意の呼び出し可能関数を 2 番目の引数として受け入れます。以下にいくつかの代替案を示します。
usort($your_data, function($a, $b) { return strcmp($a->name, $b->name); });
usort($your_data, array($this, "cmp")); // where "cmp" is a method in the class
usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));
数値の比較値:
数値プロパティに基づいてオブジェクトを並べ替える場合は、次の比較関数を考慮してください:
fn($a, $b) => $a->count - $b->count
あるいは、PHP 7 では、Spaceship 演算子を使用して簡潔な比較を行うことができます。
fn($a, $b) => $a->count <=> $b->count
以上がPHP で特定のプロパティに基づいてオブジェクトの配列を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。