根據屬性值比較陣列中的物件
確定兩個物件陣列之間的差異可能是一個挑戰。雖然標準數組存在 array_diff 和 array_udiff 等函數,但物件需要自訂方法。
要根據特定屬性比較對象,請按照以下步驟操作:
例如,考慮以下物件陣列:
array(4) { [0]=> object(stdClass)#32 (9) { ["id"]=> string(3) "205" ["day_id"]=> string(2) "12" } }
根據在id 屬性上,定義一個比較函數,如下所示:
function compare_objects($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; }
然後,使用array_udiff 比較數組:
$diff = array_udiff($first_array, $second_array, 'compare_objects');
或者,如果使用PHP >= 5.3,則可以使用匿名函數:
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
這種方法允許您根據所需的屬性值有效地比較數組中的物件。
以上是如何根據屬性值比較數組中的物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!