2014-06-28 40 views
-3

比方說,我有以下幾點:將多個陣列轉換爲字符串PHP

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 
+1

'explode()'+'str_replace()'+'implode()'= voila :-) – Darren

+0

您列出的國家/地區是否在數組中? – CoDEmanX

+0

@CoDEmanX是的,他們是 – user3785969

回答

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

+0

它不會幫助我導致$ str中的內容由一個將國家與首都相結合的foreach所製作。 – user3785969

+3

您發佈了一個似乎在字符串中的值。使用你提供的,我已經解決了這個問題。除非您在問題中提供更多信息,否則很難理解您的意思。請在你的問題中提供你所提供的價值。 –

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