Php 字符串替换无法正常工作

Php 字符串替换无法正常工作,php,Php,我得到一个如下所示的变量: $var=“用户列表1、用户列表3、用户列表4、用户列表5、用户列表6” 我的问题是,我怎样才能像下面这样显示: User list 1 User list 3 User list 4 User list 5 User list 6 我试过:echo str\u replace(“,”,“”,$var) 但我得到了错误的输出: User list 1 User list 3 User list 4 User list 5

我得到一个如下所示的变量:

$var=“用户列表1、用户列表3、用户列表4、用户列表5、用户列表6”

我的问题是,我怎样才能像下面这样显示:

User list 1
User list 3
User list 4
User list 5
User list 6
我试过:
echo str\u replace(“,”,“
”,$var)

但我得到了错误的输出:

    User list 1

    User list 3
    User list 4



    User list 5


    User list 6

有什么帮助吗?谢谢

只需使用
内爆
分解
以及
数组过滤器
即可

$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";

echo implode("<br>",array_filter(explode(',',$var)));
array_filter(explode(',',$var));
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
)
现在我们在数组中有空值。因此,我们需要使用
array\u filter
删除这些空值,如下所示

$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";

echo implode("<br>",array_filter(explode(',',$var)));
array_filter(explode(',',$var));
echo implode("<br>",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所说,输出必须在新行中断,我们将简单地使用
内爆
以及

如下

$var = "User list 1,,User list 3,User list 4,,,,User list 5,,,User list 6";

echo implode("<br>",array_filter(explode(',',$var)));
array_filter(explode(',',$var));
echo implode("<br>",array_filter(explode(',',$var)));

说明: 你的尝试

echo str_replace(",","<br>",$var);
echo str_替换(“,”,“
”,$var);

您在这里所做的是将每个
,(逗号)

一起替换,这将简单地输出您的结果。

您可以使用
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=“用户列表1、用户列表3、用户列表4、用户列表5、用户列表6”;
$a=分解(“,”,$var);
foreach($a为$b=>$c)
{
如果(!空($c))
echo$c.“
”; }
您可以使用此

        $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>";
        }
$var=“用户列表1、用户列表3、用户列表4、用户列表5、用户列表6”;
$arrvar=explode(“,”,$var);
$arrvar=数组_值(数组_过滤器($arrvar));
foreach($arrvar作为$key=>$val)
{
echo$val.“
”; }
您可以试试这个。首先用单个空格替换连续空格,然后在
单个逗号上分解
,然后在

标记上分解
数组,形成所需列表,如下所示

$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)));
$string=“用户列表1、用户列表3、用户列表4、用户列表5、用户列表6”;
$string=preg_replace(“/,+/”,“,”,“,$string);
回声(内爆(“
”,爆炸(“,”,$string));
字符串中有背对背的
,这就是问题所在。