使用陣列函數以列值來比較物件陣列
許多程式語言都提供用於比較陣列的內建函數。但是,這些函數通常使用原始資料類型和數組,而不是物件數組。這就提出瞭如何根據特定屬性或列來比較物件數組的問題。
為了解決這個問題,PHP 提供了 array_udiff,該函數可以透過指定自訂比較函數來比較物件陣列。考慮以下範例:
$first_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '210', 'day_id' => '15'] ); $second_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '215', 'day_id' => '18'] );
要根據'id' 屬性比較這些數組,您可以使用匿名函數,如下所示:
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
此函數減去'id' '兩個物件的值來決定差異。產生的 $diff 將包含第一個數組中的對象,而這些對像在第二個數組中沒有匹配的“id”值。
總之,透過使用 array_udiff 函數並定義自訂比較函數,開發人員可以根據特定屬性或列比較物件數組,為資料分析任務提供彈性。
以上是如何使用數組函數按列值比較物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!