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));
字符串中有背对背的,
,这就是问题所在。