Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разделение строки 
V
    Опции темы
s1lver
  Дата 30.4.2014, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Доброго времени суток!

Подскажите в чем может быть проблема при разделении строки?

Имеется код который возвращает список вида - *111*111*текст*текст

С помощью explode пытаюсь разделить ее на составлющие по *. Однако вместо разделения происходит удаление * smile . Подскажите в чем может быть проблема?

Код

          <ul> <?$items = GetIBlockElementList(5, false, Array("name"=>"asc"), 100);
while($arItem = $items->GetNext())
                            {?> <?$id_elem = $arItem["ID"];?> <?
$db_props = CIBlockElement::GetProperty($id, $id_elem, "sort", "asc", array());
$PROPS = array();?> 
            <li> <? 
while($ar_props = $db_props->Fetch()){
$id_element = $ar_props['VALUE'];
$id_element_str ="*".$id_element;

    echo $id_element_str;
$ex_id_element = explode("*",$id_element_str);
    //echo $ex_id_element[0];
}?> </li>
           <?}?> </ul>



--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Aliance
Дата 30.4.2014, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



explode ничего не удаляет, просто зачем было делать конкатенацию с разделителем в начале строки, а потом смотреть в первый элемент массива, естественно, что он будет пустым.
PM MAIL WWW ICQ Skype   Вверх
s1lver
Дата 30.4.2014, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



я имею ввиду, если вывести так

Код

echo $ex_id_element[1];

, то строка примет вид 111111тексттекст.

Т.е выводится строка вся полностью, но без звездочек. А хочется то, чтобы по $ex_id_element[0] - первый элемент, а по $ex_id_element[1] - второй элемент.


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Aliance
Дата 30.4.2014, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Видимо, такой результат получается из-за того, что такова изначальная строка (без звездочек), вот она вся и попадает во второй элемент в массиве (первый становится пустым, т.к. вы делаете конкатенацию).

Что выводят дампы???
Код

$id_element = $ar_props['VALUE'];

var_dump($id_element);

$id_element_str ="*".$id_element;
    echo $id_element_str;
$ex_id_element = explode("*",$id_element_str);

var_dump($ex_id_element);

PM MAIL WWW ICQ Skype   Вверх
s1lver
Дата 30.4.2014, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Первый:

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) "" }



--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Aliance
Дата 30.4.2014, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Ну и какие из этого выводы? У цикла while в данном случае 4 итерации, в каждой из них текстовая переменная не имеет никаких символов-разделителей. Подозреваю, что вам нужно следующее:

Код

          <ul> <?$items = GetIBlockElementList(5, false, Array("name"=>"asc"), 100);
while($arItem = $items->GetNext())
                            {?> <?$id_elem = $arItem["ID"];?> <?
$db_props = CIBlockElement::GetProperty($id, $id_elem, "sort", "asc", array());
$PROPS = array();?> 
            <li> <? 
while($ar_props = $db_props->Fetch()){
$id_element = $ar_props['VALUE'];
$elementsArray[] . = $id_element;
}?> </li>
           <? var_dump($elementsArray); }?> </ul>

PM MAIL WWW ICQ Skype   Вверх
s1lver
Дата 30.4.2014, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Вот, это уже намного лучше smile 

array(4) { [0]=> string(3) "111" [1]=> string(3) "111" [2]=> string(5) "текст" [3]=> string(5) "текст" }


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.