Есть массив - $mass (содержащий слова), Задача - удалить все элементы массива, длинна которых короче трех символов.
Мое решение таково:
PHP |
for ($i=0; $i<=count($mass); $i++) {if(strlen(iconv("UTF-8","koi8-r",$mass[$i])) < 3) {unset($mass[$i]);}} |
Цитата (linf @ 29.07.2009 - 20:26) |
strlen не поддерживает UTF-8 (в которой я пишу) приходится делать для некоторых функций преобразование. |
Цитата (linf @ 29.07.2009 - 20:26) |
удаляются не элементы массива, а их значения. |
PHP |
$array = array('asdf', 'ds', 'asdfa'); |
Цитата (linf @ 30.07.2009 - 09:31) |
у меня нечего не удаляет |
Цитата (linf @ 30.07.2009 - 00:31) |
эх мне бы всетаки примерчик с array_filter |
Цитата (linf @ 30.07.2009 - 00:31) |
кстати а зачем в цикле две переменных? |
Цитата (linf @ 30.07.2009 - 07:51) |
$array = array_filter($array); - ну так это понятно, а как параметры фильтраци задать??? |
Цитата (Nikitian @ 30.07.2009 - 12:05) | ||
Здесь доки с примерами. Кратко: вторым параметром задаётся callback-функция, которая и осуществляет фильтрацию. |
Цитата (linf @ 30.07.2009 - 10:23) |
Я мануал это прочитал уже, но там рассматриваются функции even и odd (четный и нечетный), это не совсем то... |
PHP |
function filter($value) |
PHP |
function filter($value) |
PHP |
$line = strtolower($line, 'UTF-8'); |
PHP |
$search = array('Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю','Ё'); |
Цитата (linf @ 30.07.2009 - 21:48) |
$line = strtolower($line, 'UTF-8'); - а вот это почему то не хочет так работать, приходится делать: |
Цитата (linf @ 31.07.2009 - 00:16) |
тока чего то русский язык теперь на php.net куда то пропал |