Ссылаясь на этот комментарий.
$values = array("foo","bar");
var_dump($value)
результаты в:
array (size=2)
0 => string 'foo' (length=3)
1 => string 'bar' (length=3)
Implode:
$value = "<span>".implode('</span>,<span>', $values)."</span>";
Сейчас var_dump($value)
результаты в:
string '<span>foo</span>,<span>bar</span>' (length=33)
Отделка:
$value = trim($value,"<span></span>");
Сейчас var_dump($value)
результаты в:
string 'foo</span>,<span>bar' (length=20)
Но это все равно должно привести к:
string '<span>foo</span>,<span>bar</span>' (length=33)
trim
Функция работает на уровне символов, а не на уровне текста или тега HTML.
Когда вы делаете trim($value, "<span></span>")
вы просите PHP удалить все начальные и конечные символы, которые появляются в тексте <span></span>
, Это имеет тот же результат, что и trim($value, "/<>anps")
Вы, вероятно, должны использовать str_replace
вместо.
Альтернативно, используйте array_filter
удалить пустые записи в массиве до вы implode
их.
Например:
$str = implode("</span>,<span>", array_filter($values, 'strlen'));
Других решений пока нет …