Не бейте сильно народ! Подскажите. Нужно мне выбрать из массива, содержащего значения томов nbgf vol12, vol14, vol22, vol225, только те, что начинаются с vol2. ну т.е. vol = "vol2*" или vol like "vol2*". Как это сделать в PHP. Чета уже голова сломалась сколько всего перечитал и не нашел!
Может я чаво не допонял, но внутри array_filter есть функция, которая должна проверять какое-то условие. Так и как мне написать эту функцию, что бы из массива Код (PHP): $myarray("vol117", "vol22", "vol228", "vol17") отобрались только начинающиеся на vol2...?
вариантов достаточно -можно вырезать вручную четыре начальных символа слова и сравнивать их с 'vol2' -можно проверять регулярным выражением, типа /^vol2/i Добавлено спустя 1 минуту 36 секунд: можно и без array_filter()/ просто пеербираем массив с помощью foreach(){} внутри проверяем каждый элемент. если нам подходит - то копируем значение в новый массив. в итоге будет новый массив только с теми элементами которые нам нужны Добавлено спустя 8 минут 30 секунд: Код (PHP): $vol2_array = array_filter($myarray, function($v) { return substr($v,0,4)=='vol2'; } );
Спасибо! Типа /^vol2/i так почему-то и не заработало. А вот вариант с substr($v,0,4) очень даже сработал. Еще раз спасибо.
Для варианта с регуляркой, надо было использовать функцию preg_grep Код (PHP): preg_grep("/^vol2/i", $myarray);
кстати да. Delphin911, почему бы не отфильтровать данные ранее, еще на стадии запроса в БД. чтоб лишние данные в результат даже не попадали. откуда этот твой массив вообще берется?