[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как создать сложный фильтр многомерного массива?
SOkolov
есть массив например
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 = Красный?
то по любому количеству параметров, чтобы можно было указывать числовые элементы массива больше или меньше.
Valick
Откуда массив? Из БД?

_____________
Стимулятор ~yoomoney - 41001303250491
SOkolov
просто массив. задача так стоит, оптимально отфильтровать многомерный массив на php. про то как фильтровать в БД я знаю, в данном вопросе это неважно
..
Valick

$newArray = array_filter(
$array,
fn($item) => $item['price'] > 100 && $item['price'] < 200 && $item['color'] === 'Красный'
);


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.