2014-12-09 3 views
-2

Ссылаясь на this комментарий.PHP: Обрезать, чтобы избавиться от пустого диапазона

$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) 
+3

не 'str_replace()' Может быть, лучше для этого? –

+1

Я не думаю, что ['trim'] (http://php.net/trim) делает [что вы думаете, что он делает] (http://php.net/str-replace) –

+2

Почему вы обрезаете его один раз у вас были результаты, которые вы искали? –

ответ

2

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')); 
+0

Итак, комментарий, о котором я говорил, неверен !? – santa

+0

@santa - Да. Неверный. Вероятно, они означали 'str_replace', а не' trim'. –

Смежные вопросы