Что-то не могу понять, или я ошибаюсь, или это нереально в этой функции. Есть массив, в котором нужно обработать элементы, и удалить некоторые. PHP: $raw_arr = ['php','perl','python ', '']; array_walk($raw_arr,function(&$v,$k) { $v = trim($v); if (strlen($v) < 2 - удалить элемент, не работает }); Как удалить пустой элемент? Пробовал и unset($k), unset($raw_arr[$k]) , все равно остается эта пустая строка. В плане - без вызова еще 1 функции или перебора через foreach.
PHP: $old_array = ['php','perl','python ', '']; $new_array = array_diff($old_array, array('')); print_r($new_array);
@zer0day, можно применить array_filter() PHP: $raw_arr = array_filter($raw_arr, function(&$v) { $v = trim($v); if (strlen($v) < 2) { // - удалить элемент, не работает return false; } return true; });
Прошелся отладчиком - работает. Значит можно ) . Кода = больше, но если для души - покурив анаши... )) Дерзай.