есть массив например
Array
(
[p-001] => Array
(
[id] => p-001
[name] => Тестовый товар 1
[color] => Синий
[product_id] => p-001
[count] => 10
[price] => 200
[currency] => р.
)
[p-002] => Array
(
[id] => p-002
[name] => Тестовый товар 2
[color] => Синий
[product_id] => p-002
[count] => 5
[price] => 345
[currency] => р.
)
[p-003] => Array
(
[id] => p-003
[name] => Тестовый товар 3
[color] => Синий
[product_id] => p-003
[count] => 0
[price] => 150
[currency] => р.
)
[p-004] => Array
(
[id] => p-004
[name] => Тестовый товар 4
[color] => Красный
[product_id] => p-004
[count] => 2
[price] => 10
[currency] => р.
)
[p-005] => Array
(
[id] => p-005
[name] => Тестовый товар 5
[color] => Белый
[product_id] => p-005
[count] => 7
[price] => 100
[currency] => р.
)
[p-006] => Array
(
[id] => p-006
[name] => Тестовый товар 6
[color] => Фиолетовый
[product_id] => p-006
[count] => 5
[price] =>
[currency] => р.
)
[p-007] => Array
(
[id] => p-007
[name] => Тестовый товар 7
[color] => Прозрачный
[product_id] => p-007
[count] => 6
[price] => 900
[currency] => р.
)
[p-008] => Array
(
[id] => p-008
[name] => Тестовый товар 8
[color] => Оранжевый
)
)
Как написать фильтр, например чтобы найти все товары у которых price больше 100 и меньше 200, и color = Красный?
то по любому количеству параметров, чтобы можно было указывать числовые элементы массива больше или меньше.