我需要一个关键字列表来分割'keyword',但如何不在末尾打印逗号,我知道计数标签,检查是否是最后一个标签,不显示,但我对其他干净好的方式很感兴趣。
我是这样使用的:
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
foreach ($keywords as $keyword) {
echo "'" . $keyword . "', ";
}
这是打印:
'keyword1', 'keyword2', 'keyword3',
但我喜欢打印时最后不带逗号,用这种方式:
'keyword1', 'keyword2', 'keyword3'
您可以implode
每个元素并打印结果:
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
// Add single quotes
$keywords = array_map(function($v) { return "'".$v."'"; }, $keywords);
echo implode(", ", $keywords);
这与(无引号)相同:
$keywords = 'keyword1 keyword2 keyword3';
echo str_replace(' ', ', ', $keywords);
如果必须这样做,我会使用爆炸、内爆和array_map的组合,类似于:
$keywords = 'keyword1 keyword2 keyword3';
$arrayOfKeywords = explode(' ', $keywords);
$mapped = array_map(function($value) {
return "'{$value}'";
}, $arrayOfKeywords);
echo implode(', ', $mapped);
您可以使用implode
:
你可以试试这样的东西:
<?php
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
echo "'". implode("', '", $keywords) . "'";
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
$num = count($keywords);
$count = 1;
foreach ($keywords as $keyword) {
if($count == $num){
echo "'".$keyword."'" ;
} else {
echo "'".$keyword ."',";
}
$count++;
}
使用数组函数来准备字符串不是最直接的方法。更好的做法是简单地在分隔空间上使用str_replace()
,并手动将字符串用单引号括起来。单线解决方案。没有数组函数,没有迭代。
代码:(演示)
$keywords = 'keyword1 keyword2 keyword3';
echo "'",str_replace(' ',"', '",$keywords),"'";
输出:
'keyword1', 'keyword2', 'keyword3'
这是"干净"/"好"的方式。
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
$count = 1;
$comma = ',';
foreach ($keywords as $keyword) {
if($count == 3){
$comma = '';
}
echo "'" . $keyword .$comma;
$count++;
}
尝试
$str = '';
$keywords = 'keyword1 keyword2 keyword3';
$keywords = explode(" ", $keywords);
foreach ($keywords as $keyword) {
$str .= "'" . $keyword . "',";
}
echo substr($str,0,-1);
rtrim($string, ",") would cut trailing commas.
trim($string, ",") would cut trailing and prefixing commas.
substr($yourstring, 0, -1); //last character.