array_unique を使用した一意のオブジェクト
PHP では、array_unique 関数は配列から重複する値を削除するのに役立ちます。ただし、オブジェクトを含む配列を操作する場合、この機能は期待どおりに動作しないように見える場合があります。
解決策を入力してください:
オブジェクトの配列の場合は、array_unique を利用できます。 SORT_REGULAR 比較フラグを使用します。このフラグは、オブジェクト参照ではなくプロパティによってオブジェクトを比較するように関数に指示します。
実装:
Role オブジェクトの配列を検討します:
class Role {
public $name;
}
$foo = new Role();
$foo->name = 'test1';
$bar = $foo;
$bam = new Role();
$bam->name = 'test2';
$test = array($foo, $bar, $bam);
array_unique を使用して重複を削除するには:
print_r(array_unique($test, SORT_REGULAR));
出力:
Array ( [0] => Role Object ( [name] => test1 ) [2] => Role Object ( [name] => test2 ) )
注意:
SORT_REGULAR を使用した array_unique では、厳密な比較 ("===") ではなく、"== 比較が使用されることに注意することが重要です。これは、同じプロパティを持つがオブジェクト参照が異なるオブジェクトは、引き続き重複とみなされます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3