Kendimce bir deneme yaptım da, array_diff() fonksiyonu sanırım şöyle işliyor.
$a = Array(
     "bos",
     "dolu",
     "farkli"
);
$b = Array(
     "bos",
     "dolu"
);

$fark = array_diff($a, $b);
print_r($fark);
Bu kodda sorunsuzca çalışıyor. A arrayinin 2 indeksli elemanı olan "farkli" çıktısını alabiliyorum. Ama "farkli" indexini B arrayine aldığımız zaman boş çıktı döndürüyor. Yani array_diff($a, $b), A arrayinde B arrayindekilerden farklı eleman olup olmadığını kontrol ediyor. Bunu sanırım iki kontrol noktası oluşturarak çözebilirsiniz. Yorumları tamamen kendim anladığım kadarıyla yaptım doğruluğundan emin değilim.