質問っす
共通の値と異なる値をを持つ複数の多次元配列を以下のようにまとめる関数ってありましたっけ?

array("id"=>"a", "val1"=>"b", "val2"=>"c")
array("id"=>"a", "val1"=>"b", "val2"=>"d")
array("id"=>"a", "val1"=>"b", "val2"=>"e")
↓
array("id"=>"a", "val1"=>"b", "val2"=>array("c","d","e"))

お願いします。