Короче говоря:
Это мой предложенный код:
$myarray = array_values(array_filter(array_map('trim', $myarray), 'strlen'));
Объяснение:
Я думаю, использование array_filter
хорошо, но недостаточно, потому что значениябыть как space
и \n
, ... держать в массиве, и это обычно плохо.
Поэтому я предлагаю вам использовать смесь array_filter
и array_map
.
array_map
для обрезки, array_filter
для удаления пустых значений, strlen
для сохранения значения 0
и array_values
для повторной индексации, если вам нужно.
Образцы:
$myarray = array("\r", "\n", "\r\n", "", " ", "0", "a");
// "\r", "\n", "\r\n", " ", "a"
$new1 = array_filter($myarray);
// "a"
$new2 = array_filter(array_map('trim', $myarray));
// "0", "a"
$new3 = array_filter(array_map('trim', $myarray), 'strlen');
// "0", "a" (reindex)
$new4 = array_values(array_filter(array_map('trim', $myarray), 'strlen'));
var_dump($new1, $new2, $new3, $new4);
Результаты:
array(5) {
[0]=>
" string(1) "
[1]=>
string(1) "
"
[2]=>
string(2) "
"
[4]=>
string(1) " "
[6]=>
string(1) "a"
}
array(1) {
[6]=>
string(1) "a"
}
array(2) {
[5]=>
string(1) "0"
[6]=>
string(1) "a"
}
array(2) {
[0]=>
string(1) "0"
[1]=>
string(1) "a"
}
Онлайн-тест:
http://phpio.net/s/5yg0