Ваш код абсолютно нечитаем.
Вы неправильно используете foreach в принципе
Вот примерный псевдокод смотрите насколько всё проще. Возможно вам надо погонять алгоритмы, почитать про стандартные функции, база видно страдает сильно.
foreach ($products as $product) {
if (!empty(array_intersect($product['stores'], $allowStores))) {
$product['allow'] = true;
}
}