我正在开发一个单词计数应用程序,我正在使用以下代码将单词加载到数组中。
$str = ' Some string is here ... Another string.. ';
$str = trim($str);
$str = preg_replace('/\s+/', ' ', $str);
$str_array = explode(" ", $str);
$str_array = array_filter($str_array);
但问题是我的数组中的空值如下所示。
Array
(
[0] => Word1
[1] => Word2
[2] => Word3
[3] =>
[4] =>
[5] =>
)
我尝试了array_filter($str_array)
以及更多stackoverflow答案。但我没能完成这件事。有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:5)
使用trim
array_map
修剪数组元素,最后使用array_filter
作为回调进行strlen
。
<?php
$arr=Array
(
0 => 'Word1',
1 => 'Word2',
2 => 'Word3',
3 => ' ',
4 => '',
5 => ''
);
$new_arr = array_filter(array_map('trim',$arr),'strlen');
print_r($new_arr);
答案 1 :(得分:1)
试试这个......
foreach ($array as $key=>$value)
{
if($value == '')
{
unset($array[$key]);
}
}
答案 2 :(得分:0)
$str = ' Some string is here ... Another string.. ';
$str = trim($str);
$str = str_replace(' ', ' ', $str); //replace two space to single space
$str_array = explode(" ", $str);
答案 3 :(得分:0)
我能够使用$str = preg_replace('/[^(\x20-\x7F)]*/','', $str);
$str = strip_tags($str);
$str = trim($str);
$str = preg_replace('/ HYPERLINK "[^"]*" /', '', $str);
$str = preg_replace('/\s+/', ' ', $str);
$str = preg_replace('/[^(\x20-\x7F)]*/','', $str);