使用數組函數按列值比較物件數組
許多程式語言都提供用於比較數組的內建函數。但是,這些函數通常使用原始資料類型和數組,而不是物件數組。這就提出瞭如何根據特定屬性或列來比較物件數組的問題。
為了解決這個問題,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 函數並定義自訂比較函數,開發人員可以根據特定屬性或列比較物件數組,為資料分析任務提供靈活性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3