BIT_COUNT(HEX(:value1) ^ HEX(:value2))
$array1 = array(50888 => array('ELEMENTS' => array('1028', '1030')),
50889 => array('ELEMENTS' => array('1048')),
50890 => array('ELEMENTS' => array('1039')),
);
$array2 = array('1028', '1039');
$array3 = array_reduce(array_keys($array1), function($carry, $key) use ($array1, $array2) {
if (count(array_intersect($array1[$key]['ELEMENTS'], $array2)) > 0)
$carry[] = $key;
return $carry;
}, array());
SELECT `b`.`id`, `b`.`title`, `b`.`description`, `b`.`public`,
(SELECT COUNT(*) FROM `likes` WHERE `boycottid` = :boycot_id) AS `likes`,
(SELECT COUNT(*) FROM `dislikes` WHERE `boycottid` = :boycot_id) AS `dislikes`,
(SELECT COUNT(*) FROM `subscriptions` WHERE `boycottid` = :boycot_id) AS `subscriptions`
FROM (
SELECT `id`, `title`, `description`, `public` FROM `boycotts` WHERE `id` = :boycot_id
) AS `b`