我得到了下面的代码,但目前它生成了一串结果,但有大约 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/