| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Разделение строки |
| Автор: s1lver 30.4.2014, 14:13 | ||
| Доброго времени суток! Подскажите в чем может быть проблема при разделении строки? Имеется код который возвращает список вида - *111*111*текст*текст С помощью explode пытаюсь разделить ее на составлющие по *. Однако вместо разделения происходит удаление *
|
| Автор: Aliance 30.4.2014, 14:54 |
| explode ничего не удаляет, просто зачем было делать конкатенацию с разделителем в начале строки, а потом смотреть в первый элемент массива, естественно, что он будет пустым. |
| Автор: s1lver 30.4.2014, 15:33 | ||
я имею ввиду, если вывести так
, то строка примет вид 111111тексттекст. Т.е выводится строка вся полностью, но без звездочек. А хочется то, чтобы по $ex_id_element[0] - первый элемент, а по $ex_id_element[1] - второй элемент. |
| Автор: Aliance 30.4.2014, 15:42 | ||
| Видимо, такой результат получается из-за того, что такова изначальная строка (без звездочек), вот она вся и попадает во второй элемент в массиве (первый становится пустым, т.к. вы делаете конкатенацию). Что выводят дампы???
|
| Автор: s1lver 30.4.2014, 15:51 |
| Первый: string(3) "111" string(3) "111" string(5) "текст" string(5) "текст" Второй: array(2) { [0]=> string(3) "111" [1]=> string(0) "" } array(2) { [0]=> string(3) "111" [1]=> string(0) "" } array(2) { [0]=> string(5) "текст" [1]=> string(0) "" } array(2) { [0]=> string(5) "текст" [1]=> string(0) "" } |
| Автор: Aliance 30.4.2014, 15:54 | ||
Ну и какие из этого выводы? У цикла while в данном случае 4 итерации, в каждой из них текстовая переменная не имеет никаких символов-разделителей. Подозреваю, что вам нужно следующее:
|
| Автор: s1lver 30.4.2014, 16:04 |
| Вот, это уже намного лучше array(4) { [0]=> string(3) "111" [1]=> string(3) "111" [2]=> string(5) "текст" [3]=> string(5) "текст" } |