Как перекрестить между собой значения массива

ladan

Новичок
Здравствуйте! Есть интернет-магазин, где есть форма с фильтрами каталога. Есть строка в url, например, http://magazin/smartfony?color=gold,black,white&screen_size=6.5,5.8,6.1&brand=apple,samsung&internal_memory=128,64

В итоге на сервере обрабатываем ссылку и получаем массив:

Array(
[color] => Array ( [0] => gold [1] => black [2] => white )
[screen_size] => Array ( [0] => 6.5 [1] => 5.8 [2] => 6.1 )
[brand] => Array ( [0] => apple [1] => samsung )
[internal_memory] => Array ( [0] => 128 [1] => 64 )
)


Не могу понять, как можно перекрестить значения в массиве, чтобы сформировать запрос для mysql. На выходе должно получиться:

color='gold' AND screen_size='6.5' AND brand='apple' AND internal_memory='128'
OR
color='black' AND screen_size='6.5' AND brand='apple' AND internal_memory='128'
OR
color='white' AND screen_size='6.5' AND brand='apple' AND internal_memory='128'
OR
color='gold' AND screen_size='5.8' AND brand='apple' AND internal_memory='128'
OR
color='black' AND screen_size='5.8' AND brand='apple' AND internal_memory='128'
OR
color='white' AND screen_size='5.8' AND brand='apple' AND internal_memory='128'
OR
color='gold' AND screen_size='6.1' AND brand='apple' AND internal_memory='128'
OR
color='black' AND screen_size='6.1' AND brand='apple' AND internal_memory='128'
OR
color='white' AND screen_size='6.1' AND brand='apple' AND internal_memory='128'

и так далее (еще не учли brand (samsung) и internal_memory). Получится еще столько же вариантов.


Параметров может быть как больше, так и меньше

вариантов должно получиться очень очень много, что думаю без рекурсии тут не обойтись, не могу логику понять, как сделать
 

jonjonson

Охренеть
[стёр свой ответ] тупанул. нужно отдыхать на праздники
 
Последнее редактирование:

weregod

unserializer
SQL:
`color` IN ('gold', 'black', 'white') AND `screen_size` IN ('6.5', '5.8', '6.1') AND ..
не?
 

weregod

unserializer
тс-у писал, какой json, сам догадается, что ничего городить не надо )
 

ladan

Новичок
Скажите пожалуйста, а как быть в случае, когда есть поле с ценой товара и нужно показать те товары, где цена больше указаной, либо диапазон задать? Что-то типа такого price >=4000 (показать товары от 4000р), либо диапазон price >= 4000 AND price <= 10000
 
Сверху