给定的是,在输入表单中,用户可以用换行符分隔一些特定的名称,我将这些名称保存在数组中.然后,我打印这些名称,最后说出类似“谢谢您的名称”之类的内容.
$var = "name1
name2
";
$your_array = explode("\n", $var);
for($i=0; $i
echo ($your_array[$i]);
}
echo "Thank you for the names"
但是问题是,如果有人在一个名称之前或之后输入多个换行符,那么在经过一段距离后会显示下一个名称,如下所示
name1
name2
Thank you for the names
如何逃脱这个并输出如下
name1
name2
Thank you for the names
我试图使用array_filter()但在这里不起作用.
更新:
If someone input
$var = "name1\nname2\n\n\n
name3
name4";
输出应该像
name1
name2
name3
name4
但是所有答案都像
name1
name2
name3
name4
解决方法:
为了简单起见,我们使用一个foreach循环…
1)我们需要遍历新数组并修剪名称,以便丢失所有空格.
2)当且仅当名称的长度为1或更大时,我们才会回显该名称.
3)我们在< br>上加上标记,以使每个名称都显示在新行上.
$var = "name1\nname2\n\n\n";
$your_array = explode("\n", $var);
foreach($your_array as $name)
{
if(preg_match("/[a-zA-Z0-9]{1,}/i", $name)) {
$name = trim($name);
echo (strlen($name) > 1) ? sprintf('%s
', $name) : '';
}
}
echo "Thank you for the names";
?>
标签:arrays,php
来源: https://codeday.me/bug/20191031/1975963.html