2014-11-21 137 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)));