2014-11-21 207 views
0

我試圖操縱$array:爆/爆炸PHP數組

Array ([0] => General [1] => Custom Title) 

使用破滅,我可以得到$array成一個空間分隔的各個部分:

<?php $pieces = implode(" ", $array); ?> 

輸出:

General Custom Title 

但是,如果數組件是兩個單詞,它不起作用,因爲我更喜歡t他輸出爲:

General Custom-Title 

任何想法?

+0

你究竟是什麼意思?你可以在連字符上做一個'str_replace',並用''替換它。 – androidavid 2014-11-21 14:04:43

+0

首先迭代整個數組,並用短劃線替換空格。然後使用implode。 – 2014-11-21 14:05:00

+0

你不能用implode來逃避分隔符。它具有非常簡單的實現。手動做。 – 2014-11-21 14:06:10

回答

2

在內爆之前用連字符替換空格。

foreach ($arr as $idx => $val) { 
    $arr[$idx] = str_replace(" ", "-", $val); 
} 
$pieces = implode(" ", $arr); 
+1

使用'array_map()'的腳印應該低於'foreach()' – RichardBernards 2014-11-21 14:29:19

1

你必須爲此使用一些字符串操作函數。我建議str_replacearray_walk(或array_map)或簡單foreach循環的組合。

1
<?php 
foreach ($myArray as $key => $value) { 
    $myArray[$key] = str_replace(' ' , '-', $value); 
} 
$output = implode(' ', $myArray); 
?> 
0
$x = array('Hallo X', 'Hallo Y'); 

echo implode(' ', (array_map(function($e) { return str_replace(' ', '-', $e); }, $x))); 
0

甲一個襯裏。缺陷是你可能在你的數組元素中有%%,但我懷疑這一點。

$pieces = str_replace('%%', ' ', str_replace(' ', '-', implode('%%', $array)));