Внушить / взорвать массив PHP

0

Я пытаюсь манипулировать $array:

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

Используя Implode, я могу получить $array в отдельные части, разделенные пробелом:

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

Вывод:

General Custom Title

Однако, если части массива представляют собой два слова, это не работает, поскольку я бы предпочел, чтобы выход был следующим:

General Custom-Title

Есть идеи?

  • 0
    Что именно ты имеешь ввиду? Вы можете просто сделать str_replace на str_replace и заменить его на ''.
  • 0
    Сначала переберите массив и поменяйте местами тире. Тогда используйте взорваться.
Показать ещё 1 комментарий
Теги:
arrays

5 ответов

2
Лучший ответ

Заменяйте пробелы дефисом, прежде чем взорвать.

foreach ($arr as $idx => $val) {
    $arr[$idx] = str_replace(" ", "-", $val);
}
$pieces = implode(" ", $arr);
  • 1
    При использовании array_map() след должен быть меньше, чем у foreach()
1

Для этого вам нужно использовать некоторую функцию манипуляции с строкой. Я предлагаю комбинацию str_replace с помощью array_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)));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню