если я передаю для предварительной загрузки и для отображения одни и те же данные то почему в запросе они разныеМоя гипотеза - на главной странице они подстраиваются под размер контейнера. Но, повторюсь, надо дебажить, чтобы разобраться точно.
array_filter(
$a,
fn (array $item): bool => (
$item['lvl1']['count'] !== 0 && $item['lvl1']['min'] !== 0 && $item['lvl1']['max'] === 0 &&
$item['lvl2']['count'] !== 0 && $item['lvl2']['min'] !== 0 && $item['lvl2']['max'] === 0 &&
$item['lvl3']['count'] !== 0 && $item['lvl3']['min'] !== 0 && $item['lvl3']['max'] === 0
)
);