将多个数组合并到字符串PHP中

时间:2014-06-28 13:24:47

标签: php arrays string

我们说我有以下内容:

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

2 个答案:

答案 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;

?>

http://codepad.org/df1UUOvi

它不像看起来那么简单的原因是有两个小组,有一个交换:

外部小组

Germany, Berlin

内部小组

Germany
Berlin

您必须单独处理每个组,并将,换出外部组以分隔内部组。因此,除非有人做了一些聪明的事情,否则你必须将外部组分开,迭代并用内部组中的,替换-,然后重新加入分离,

注意

一衬垫:

$str = implode(',', explode("\r\n", str_replace(', ', '-', trim($str))));

http://codepad.org/p2e3ozMv

答案 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