Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как разделить строку?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
arhitec
Отправлено: 16 Июня, 2011 - 08:50:34
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Всем привет!
Есть строка вида: 10(3-11)
Нужно выделить из строки все числа по отдельности.
strtok () смог выделить только 10, а как выделить 3 и 11 не могу сообразить. Помогите, пожалуйста.
 
 Top
EuGen Администратор
Отправлено: 16 Июня, 2011 - 09:03:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. $str='10(3-11)';
  2. preg_match_all('/\d+/', $str, $rgMatches);
  3. var_dump($rgMatches);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
arhitec
Отправлено: 16 Июня, 2011 - 09:12:48
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Прошу меня простить, но ума не хватает понять что делать с полученной строкой:
array(1) { [0]=> array(3) { [0]=> string(2) "10" [1]=> string(1) "3" [2]=> string(2) "11" } }
Это результат разделения. Как можно каждое из чисел перевести в отдельную переменную (массив)?
 
 Top
EuGen Администратор
Отправлено: 16 Июня, 2011 - 09:14:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




$rgMatches и есть массив.
http://php.su/functions/?var_dump
- это нужно лишь чтобы показать его структуру. Почитайте http://php.su/functions/?preg_match_all


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
arhitec
Отправлено: 16 Июня, 2011 - 09:16:56
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




EuGen пишет:
$rgMatches и есть массив.
http://php.su/functions/?var_dump
- это нужно лишь чтобы показать его структуру. Почитайте http://php.su/functions/?preg_match_all


Уже сообразил Улыбка Не могу понять как из этого массива по отдельности вытащить эти цифры Недовольство, огорчение
Например, echo $rgMatches[]; выдает Array. А по идее должен был выдать число...

(Отредактировано автором: 16 Июня, 2011 - 09:20:16)

 
 Top
EuGen Администратор
Отправлено: 16 Июня, 2011 - 09:19:25
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Что значит - "вытащить" ? Они уже в массиве и являются его элементами. Вот и обращайтесь по индексам.
$rgMatches[0][0]
$rgMatches[0][1]
и т.п.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
arhitec
Отправлено: 16 Июня, 2011 - 09:21:26
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




EuGen пишет:
Что значит - "вытащить" ? Они уже в массиве и являются его элементами. Вот и обращайтесь по индексам.
$rgMatches[0][0]
$rgMatches[0][1]
и т.п.


Спасибо большое, я не знал, что масссив может так писаться с двумя квадратными скобками. Все получилось. Спасибо большое! Улыбка
 
 Top
Slavenin
Отправлено: 16 Июня, 2011 - 09:34:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




arhitec, почитайте http://php.su/learnphp/vars/?arrays и http://phpclub[dot]ru/detail/article/regexp_1 Подмигивание

(Отредактировано автором: 16 Июня, 2011 - 09:36:38)

 
 Top
arhitec
Отправлено: 16 Июня, 2011 - 09:37:00
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




А можно еще вопрос? Улыбка
Я разбил эту строку, что бы можно было изменить цифры (что-то вроде счетчика), теперь мне нужно перевести разделенные цифры в единую строку того же вида, что и была. Как это сделать?

(Отредактировано автором: 16 Июня, 2011 - 09:37:33)

 
 Top
Slavenin
Отправлено: 16 Июня, 2011 - 09:42:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. $a = '10';
  2. $b = '20';
  3. $c = '-';
  4. $d = '(';
  5. $e = ')';
  6. echo $a .$d .$b .$c .$a .$e;


или
PHP:
скопировать код в буфер обмена
  1.  
  2. echo $a .'(' .$b .'-' .$a .')';

(Отредактировано автором: 16 Июня, 2011 - 09:44:03)

 
 Top
arhitec
Отправлено: 16 Июня, 2011 - 09:44:13
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Неа, я имею ввиду, как преобразовать все это в одну переменную, не массив?
Мне нужно будет эту строку (объединенную), записать в файл.

Все, сам сдогадался! Спасибо еще раз!

(Отредактировано автором: 16 Июня, 2011 - 09:49:13)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB