这里我试图在foreach循环获取的值中添加逗号。现在这些值都在一起,但是我希望它以逗号分隔的方式回显。请建议我,我要做什么。我知道,我必须使用内爆,但我不知道如何在循环中完成它。
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested)) continue;
echo $interested;
}
答案 0 :(得分:6)
如果你想保持你的代码相对不受影响(虽然我修复了令人困惑的缩进)...
$interestedValues = array();
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested)) continue;
$interestedValues[] = $interested;
}
echo implode(',', $interestedValues);
......或者因为一个衬里看起来很时髦......
echo implode(',', preg_grep('/^[-A-Z\d., ]+$/iD', $_POST['insert']));
答案 1 :(得分:2)
这甚至可以作为单行代码完成:
echo join(', ', array_filter($_POST['insert'],
function ($str) { return preg_match('/^[-A-Z0-9\., ]+$/iD', $str); }));
答案 2 :(得分:0)
只需使用其语法
$array=array();
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested)) continue;
$array[]=$interested;
}
echo implode(',',$array);
答案 3 :(得分:0)
由于$interested
显然是一个字符串,我假设您想要将所有这些与,
连接起来。
$counter = 0;
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested))
continue;
if($counter++)
echo ", ";
echo $interested;
}
这比将值存储在新数组中更有效,但是,您会失去一点灵活性。
答案 4 :(得分:0)
如果您只对$ _POST ['insert']中的特定值感兴趣,请创建一个新数组并将其内爆:
$justSomeValues = array();
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested)) continue;
$justSomeValues[] = $interested;
}
echo implode(', ', $justSomeValues);
否则,要破坏整个$ _POST ['insert']执行此操作:
echo implode(', ', $_POST['insert']);
答案 5 :(得分:0)
将所有值放在数组中并使用JOIN来回显csv值:
$newarray = array();
foreach($_POST['insert'] as $interested) {
if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $interested)) continue;
$newarray[] = $interested;
}
echo JOIN(",",$newarray);