Есть массив объектов у которых есть параметры: pay и cart, которые имеют значение 1 или 0. Я принимаю GET параметры pay и cart со значениями:
if(isset($_GET['pay'])) {
$pay_get = $_GET['pay'];
} else {
$pay_get = false;
}
if(isset($_GET['cart'])) {
$cart_get = $_GET['cart'];
} else {
$cart_get = false;
}
И пытаюсь отфильтровать массив по этим значениям:
foreach ($arr => $item) {
//Фильтр по выкупу
if($pay_get != false && $pay_get != $item->pay) {
continue;
}
//Фильтр по карте
if($cart_get != false && $cart_get != $item->cart) {
continue;
}
$object = new stdClass;
$object->name = $item->name;
$object->properties->pay = $item->pay;
$object->properties->cart = $item->cart;
array_push($new_filtered_array, $object);
}
Но что то не выходит корректно отфильтровать, мозги что то уже отказываются понимать почему. Как тут быть?
<?php
$GET = [
'pay' => 0,
'card' => 1,
'test' => false,
];
$arr = [
0 => (object)['pay' => 1],
1 => (object)['card' => 1],
2 => (object)['pay' => 0],
3 => (object)['card' => 0],
4 => (object)['card' => 0, 'pay' => 1],
5 => (object)['card' => 1, 'pay' => 1],
6 => (object)['card' => 0, 'pay' => 0],
7 => (object)['card' => 1, 'pay' => 0],
];
$allowedFilter = [
'pay',
'card',
];
$allowedValues = [0, 1];
foreach ($arr as $index => $item) {
$allFilter = true;
foreach ($allowedFilter as $key) {
if (!isset($GET[$key]) || !in_array($GET[$key], $allowedValues)) {
//Нет фильтра, либо значение неправильно. Игнорируем фильтр
continue;
}
if (empty($GET[$key]) && empty($item->$key)) {
//Фильтр неактивный, значение тоже должно быть неактивно, для принятия
} elseif (!empty($GET[$key]) && !empty($item->$key)) {
//Фильтр активный, значение тоже должно быть активно, для принятия
} else {
//Фильтр отличается от значения, охрана отмена =)
$allFilter &= false;
}
}
if ($allFilter) {
echo "Все фильтры совпали в позиции #{$index}\n";
}
}
https://ideone.com/Q5fi1L
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Обычно различного рода экзепшенами стараются закрыть внутренние ошибкиПриведу примитивный пример, чтобы понятнее была суть вопроса
Настраиваю приложение которое будет получать посты со стены публичной страницы и постить на сайте, столкнулся с некоторыми непонятностями,...