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

v.bubchikov

У меня задача динамически фильтровать данные массива. То есть условие фильтрации по нескольким полям массива. И это условие постоянно меняется. То есть нужно что-то похожее на вот это.

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

 

Drunkenmunky

Приведите пример массива.
И какие данные из него необходимо извлечь.
А также пример постоянно меняющихся условий.

 

ADSoft

передавайте не строку, а ассоциативный массив …в функции фильтра смотрите — если непустой элемент массива — применяете фильтр свой

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *