Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中使用数组时如何截断尾随逗号_Php_Arrays - Fatal编程技术网

在php中使用数组时如何截断尾随逗号

在php中使用数组时如何截断尾随逗号,php,arrays,Php,Arrays,我有一个表单,它使用复选框创建一个数组,然后用逗号分隔的值输出数组。我想不出如何让最后一个逗号不回显。我是PHP新手,正在寻求一些帮助 <?php $checked = $_POST['features']; for($i=0; $i < count($checked); $i++){ echo $checked[$i] . ", "; } ?> 您可以使用PHPs内置功能: echo implode(', ', $checked); 但是,如果您以与用户

我有一个表单,它使用复选框创建一个数组,然后用逗号分隔的值输出数组。我想不出如何让最后一个逗号不回显。我是PHP新手,正在寻求一些帮助

    <?php $checked = $_POST['features'];
for($i=0; $i < count($checked); $i++){
    echo $checked[$i] . ", ";
} ?>

您可以使用PHPs内置功能:

echo implode(', ', $checked);
但是,如果您以与用户插入完全相同的方式打印用户输入,请注意XSS攻击。所以我可以给
$\u POST['features][0]
写一些类似
alert(“hello world”)的东西,这将在您内爆阵列并将其打印出来时由浏览器执行。因此,用于清理用户输入:

echo implode(', ', array_map('htmlspecialchars', $checked));
由于用户可以通过此POST数据插入任何内容,您应该检查它是否实际上是一个数组:

if(is_array($checked) === true)
    echo implode(', ', array_map('htmlspecialchars', $checked));
else
    echo 'No valid data provided';

保存到变量使用rtrim(“,”,$variable),然后将变量输出回显

您可以使用以下代码将数组输出回显,而无需在数组中循环:

echo print_r($array, true);
这将显示数组的可读表示形式,不带尾随逗号,尽管它不会像使用
var\u export()
那样显示null、true和false

额外奖金: 如果在代码周围添加html
标记,如下所示:

echo '<pre>' . print_r($array, true) . '</pre>';
echo“”。打印($array,true)。“”;
您将可以更好地查看保留空格和换行符的数组