【问题标题】:Combine multiple array into string PHP将多个数组组合成字符串 PHP
【发布时间】:2014-06-28 13:24:46
【问题描述】:

假设我有以下内容:

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

【问题讨论】:

  • explode() + str_replace() + implode() = 瞧 :-)
  • 您在数组中列出的国家/地区是字符串吗?
  • @CoDEmanX 是的
  • 对我来说这并不简单,这就是我寻求帮助的原因。我尝试的一切都只得到插入到 mysql 字段中的最后一个字符串,而不是整个字符串。
  • 如果你插入带有换行符的原始字符串和所有内容,MySQL 不会抱怨,只需正确引用它。您有什么理由要转换该字符串吗?您是否必须将其重新转换回原始形式?如何使用标准格式,以便您可以像 JSON 一样轻松解码?

标签: php arrays string


【解决方案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

【讨论】:

  • 这对我没有帮助,因为 $str 中的内容是由结合国家和首都的 foreach 制作的。
  • 您发布的值似乎在字符串中。使用您提供的内容,我已经解决了这个问题。除非您在问题中提供更多信息,否则很难理解您的意思。请在您的问题中提供是什么创造了您提供的价值。
【解决方案2】:

作为单班轮:

$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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2016-07-28
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多