我可以手动使用if
和elseif
,但如果我使用数组结果用逗号分隔,它就无效...
所以,这就是我要做的事情:
在数据库中,成员使用以下格式的3种语言:english, portuguese, spanish
如何以这种格式打印:english, portuguese and spanish
?
结果如下:
foreach($acc_languages as $list){
$languages = $list['lang'];
}
有一些“列表格式”可以在最后一个之前用“和”分隔值来添加逗号吗?
答案 0 :(得分:3)
您可以使用implode
和preg_replace
的组合:
$languages = implode(', ', $acc_languages);
$languages = preg_replace('/, ([^,]*)$/',' and $1',$languages);
这会创建逗号来分隔它们,然后将最后一个更改为a而不使用逗号。
这也假设没有语言中包含逗号。
答案 1 :(得分:3)
抓住数组中的最后一个元素,合并其他项目,然后在'和'之后添加最后一个元素:
$lastLang = array_pop($acc_languages);
$languages = implode(', ',$acc_languages);
$languages .= ' and '.$lastLang;
答案 2 :(得分:2)
获取最后一个逗号的位置,然后将其替换为" and"
字符串。
<?php
$list = "english, spanish, portugese";
$list = substr_replace($list, " and", strrpos($list, ","), 1);
echo $list; //echos english, spanish and portugese
?>
希望有所帮助!!
答案 3 :(得分:0)
非常快:
foreach($acc_languages as $list){
$languages = (($pos = strrpos($list['lang'],","))!==FALSE ?
substr_replace($list['lang']," and",$pos,1) : $list['lang']);
}