Arkadaşlar nerede hata yapıyorum bi bakar mısınız.

Tablo yapısı;

begen(
BegenID,
ID,
KullaniciID,
IPAdres
)

şekline benzer bir tablo yapısı var.

Fonksiyonum;

Function CookieBegenIDEkle($ID, $BegenID){
$CookieArray = isset($_COOKIE['Begen']) ? unserialize($_COOKIE['Begen']) : array();
if (!in_array($ID, $CookieArray[$ID])) {
$CookieArray[$ID] = $BegenID;
}
setcookie("Begen", serialize($CookieArray), (time() + ( 365 * 24 * 60 * 60)), "/");
}


Yapmak istediğim şey normalde kullanıcı giriş yaptığında KullaniciID ile begen tablosundan veriyi siliyordum burada sorun yok. Kullanıcı giriş yapmadığında ise IP Adresinden yakalıyordum. Daha sonra düşündüm bir evde tek bir modem ile ali ve veli farklı bilgisayarlardan veya telefonlardan girebilir. Bu yüzden cookie ile konunun ID değeri ile BegenID değerlerini çerez ile array a eklemek istiyorum. Begen isimli cookie ye sadece 1 tane ID değeri eklensin ve ID değerinin içerisine de BegenID eklensin istiyorum. Yukarıdaki şekilde yaptığımda

Warning: in_array() expects parameter 2 to be array, null given in...

şeklinde hata alıyorum. Acaba nerede hata yapıyorum?