За последние 24 часа нас посетили 22684 программиста и 1049 роботов. Сейчас ищут 736 программистов ...

array_filter помогите пожалуйста

Тема в разделе "PHP для новичков", создана пользователем v.bubchikov, 11 май 2021.

Метки:
  1. v.bubchikov

    v.bubchikov Новичок

    С нами с:
    11 май 2021
    Сообщения:
    1
    Симпатии:
    0
    У меня задача динамически фильтровать данные массива. То есть условие фильтрации по нескольким полям массива. И это условие постоянно меняется. То есть нужно что-то похожее на вот это.
    PHP:
    1. $b = 12; // переменные получаются динамически
    2. $c = 13;
    3. $d = 50;
    4. $e = 65;
    5. $f = 1;
    6. $g = 10;
    7.              
    8. $sport1 = array_filter($get_csv1, function($a) use($b, $c, $d, $e, $f, $g) {return $a[1] >= $b && a[1] <= $c && $a[2] >= $d && $a[2] <= $e && $a[3] >= $f && $a[3] <= $g;});  
    Так все работает. НО Условия постоянно меняются и не все переменные имеют значения, некоторые иногда - пустая строка.
    Вот и хотел сначала подготовить условие виде строки ($condition) . Примерно так
    PHP:
    1. $b = 12;
    2. $condition = '$a[1] == '.$b;
    3. $sport1 = array_filter($get_csv1, function($a) use($condition) {return $condition;});
    Но так не работает и я никак не могу понять как эту строку правильно передать в array_filter
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Приведите пример массива.
    И какие данные из него необходимо извлечь.
    А также пример постоянно меняющихся условий.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.821
    Симпатии:
    736
    Адрес:
    Татарстан
    передавайте не строку, а ассоциативный массив ...в функции фильтра смотрите - если непустой элемент массива - применяете фильтр свой