>我得到一个看起来像这样的变量:
$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6"
我的问题是我如何显示如下:
User list 1
User list 3
User list 4
User list 5
User list 6
我试过这个:echo str_replace(",","<br>",$var);
但我得到错误的输出:
User list 1
User list 3
User list 4
User list 5
User list 6
有什么帮助吗?谢谢
只需使用 implode
和 explode
以及像 as 这样的array_filter
$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";
echo implode("<br>",array_filter(explode(',',$var)));
输出:
User list 1
User list 3
User list 4
User list 5
User list 6
编辑:
让我们逐步使其更清晰
步骤 1
我们将使用 PHP 的函数在,
处爆炸字符串explode
如下所示
explode(',',$var);
这将导致
Array
(
[0] => User list 1
[1] =>
[2] => User list 3
[3] => User list 4
[4] =>
[5] =>
[6] =>
[7] => User list 5
[8] =>
[9] =>
[10] => User list 6
)
现在我们在数组中空了值。因此,我们需要使用类似 as 的array_filter
删除该空值
array_filter(explode(',',$var));
结果到数组中
Array
(
[0] => User list 1
[2] => User list 3
[3] => User list 4
[7] => User list 5
[10] => User list 6
)
现在,由于 OP 声明输出必须在新行中断,我们将简单地使用 implode
以及类似 <br>
echo implode("<br>",array_filter(explode(',',$var)));
结果
User list 1
User list 3
User list 4
User list 5
User list 6
演示
解释:您的尝试
echo str_replace(",","<br>",$var);
您在这里所做的是替换每个,(comma)
以及<br>
,这将简单地输出您的结果。
你可以
试试这个。首先用单个空格替换连续空格,然后在single comma
上explode
,然后在<br>
标签上implode
数组以形成所需的列表,如下所示。
$string="User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";
$string = preg_replace("/,+/", ",", $string);
echo (implode('<br>',explode(',',$string)));
您可以使用
explode
$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";
$a = explode(',',$var);
foreach($a as $b=>$c)
{
if(!empty($c))
echo $c."<br>";
}
你可以使用这个
$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";
$arrvar = explode(',',$var);
$arrvar = array_values(array_filter($arrvar));
foreach($arrvar as $key=>$val)
{
echo $val."<br>";
}