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


String replace not working properly Php

>我得到一个看起来像这样的变量:

$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

有什么帮助吗?谢谢

只需使用 implodeexplode 以及像 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 commaexplode,然后在<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>";
        }