php - 从 echo 中的字符串中删除空格和 BR

标签 php mysql arrays

我得到了下面的代码,但目前它生成了一串结果,但有大约 40 多个空格。

$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$levels = JAccess::getAuthorisedViewLevels($user->id);
foreach($levels as $key => $level)
{
  $query  = 'SELECT title FROM #__pf_projects';
  $query .= ' WHERE access = ' . $level . " AND TRIM(title) != ''";
  $db->setQuery($query);
  $projectlist = $db->loadResult($query).'<br>';
  echo $projectlist;
}

起初我以为array_filter()在这里会很好,但正如 PatrickQ 指出的那样,它是一个字符串,因此数组过滤器将不起作用。 然后我根据 Don't Panic 的回答修改了代码。这个改编后的代码就是您在上面看到的。

它现在返回一个这样的列表。

<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
http://www.domain1.com
<br>
<br>
<br>
<br>
http://www.domain5.com
http://www.domain23.com
http://www.domain65.com
http://www.domain213.com
<br>
<br>
<br>
<br>
<br>
<br>

那么如何调整代码以获取这样的列表:

http://www.domain1.com
http://www.domain5.com
http://www.domain23.com
http://www.domain65.com
http://www.domain213.com

当您更改 <br>进入,然后列表变成,,,,,,,,,,,http,,,,,,httphttphttphttp,,,,,,, <= 我把它写得更短了。

最佳答案

首先,array_filter,如果没有传递回调,将只删除 falsy 元素。带空格的字符串被评估为 true,因此不会从数组中删除。你可以这样做:

$filteredArray = array_filter($projectList, function($val) {
    return trim($val);
});

print_r($filteredArray);

此外,您不能回显数组。您可以使用 print_r 或 var_dump。

关于php - 从 echo 中的字符串中删除空格和 BR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46936908/

相关文章:

php - 如何获取基于位置的时间?

php - 来自列表 id 的 mysql 查询名称

MySQL表设计/架构,表太大

JavaScript:由 getElementsByTagName() 创建的数组不会返回其元素的长度?

c - 结构体数组的初始化

javascript - 谷歌浏览器 ERR_CACHE_MISS 解决方法

php - 在 Wordpress 中获取页面的特色图片(无帖子)

mysql - 遇到问题 : Illegal mix of collations in MySQL

python - 如何使用Python解析/提取嵌套的JSON数据?

php - Symfony:自定义 session 保存处理程序最长执行时间