我们说我有以下内容:
Germany, Berlin
France, Paris
England, London
Spain, Madrid
我想要做的就是将这些词组合在一起,以便我能得到以下结论:
Germany-Berlin,France-Paris,England-London,Spain-Madrid
作为一个连续的字符串。
我的问题是,在某些情况下,当我有多行而不是一行时,我想将它们全部组合成一个字符串,这样我就可以将整个字符串插入到mysql字段中。
我尝试的所有内容都让我知道我只有最后一个字符串插入到mysql字段中,在这种情况下是西班牙 - 马德里。我想通过在它们之间使用 - 来合并德国和柏林。之后将此字符串与其余字符串组合在一起。 最后我想插入mysql字段,如下所示:
Germany-Berlin,France-Paris,England-London,Spain-Madrid
答案 0 :(得分:1)
试试这个:
<?php
$str = "
Germany, Berlin
France, Paris
England, London
Spain, Madrid
";
$str = explode("\r\n", trim($str));
for ($i = 0, $l = count($str); $i < $l; $i++) {
$str[$i] = str_replace(', ', '-', $str[$i]);
}
$str = implode(',', $str);
echo $str;
?>
它不像看起来那么简单的原因是有两个小组,有一个交换:
外部小组
Germany, Berlin
内部小组
Germany
Berlin
您必须单独处理每个组,并将,
换出外部组以分隔内部组。因此,除非有人做了一些聪明的事情,否则你必须将外部组分开,迭代并用内部组中的,
替换-
,然后重新加入分离,
。
注意强>
一衬垫:
$str = implode(',', explode("\r\n", str_replace(', ', '-', trim($str))));
答案 1 :(得分:0)
作为单线:
$arr = array(
"Germany, Berlin",
"France, Paris",
"England, London",
"Spain, Madrid"
);
array_walk($arr, function(&$s){$s = str_replace(", ", "-", $s);});
echo(implode(",", $arr));
输出:Germany-Berlin,France-Paris,England-London,Spain-Madrid