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
Форумы портала PHP.SU :: Версия для печати :: Как разделить строку?
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Как разделить строку?

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

1. arhitec - 16 Июня, 2011 - 08:50:34 - перейти к сообщению
Всем привет!
Есть строка вида: 10(3-11)
Нужно выделить из строки все числа по отдельности.
strtok () смог выделить только 10, а как выделить 3 и 11 не могу сообразить. Помогите, пожалуйста.
2. EuGen - 16 Июня, 2011 - 09:03:24 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $str='10(3-11)';
  2. preg_match_all('/\d+/', $str, $rgMatches);
  3. var_dump($rgMatches);
3. arhitec - 16 Июня, 2011 - 09:12:48 - перейти к сообщению
Прошу меня простить, но ума не хватает понять что делать с полученной строкой:
array(1) { [0]=> array(3) { [0]=> string(2) "10" [1]=> string(1) "3" [2]=> string(2) "11" } }
Это результат разделения. Как можно каждое из чисел перевести в отдельную переменную (массив)?
4. EuGen - 16 Июня, 2011 - 09:14:21 - перейти к сообщению
$rgMatches и есть массив.
http://php.su/functions/?var_dump
- это нужно лишь чтобы показать его структуру. Почитайте http://php.su/functions/?preg_match_all
5. arhitec - 16 Июня, 2011 - 09:16:56 - перейти к сообщению
EuGen пишет:
$rgMatches и есть массив.
http://php.su/functions/?var_dump
- это нужно лишь чтобы показать его структуру. Почитайте http://php.su/functions/?preg_match_all


Уже сообразил Улыбка Не могу понять как из этого массива по отдельности вытащить эти цифры Недовольство, огорчение
Например, echo $rgMatches[]; выдает Array. А по идее должен был выдать число...
6. EuGen - 16 Июня, 2011 - 09:19:25 - перейти к сообщению
Что значит - "вытащить" ? Они уже в массиве и являются его элементами. Вот и обращайтесь по индексам.
$rgMatches[0][0]
$rgMatches[0][1]
и т.п.
7. arhitec - 16 Июня, 2011 - 09:21:26 - перейти к сообщению
EuGen пишет:
Что значит - "вытащить" ? Они уже в массиве и являются его элементами. Вот и обращайтесь по индексам.
$rgMatches[0][0]
$rgMatches[0][1]
и т.п.


Спасибо большое, я не знал, что масссив может так писаться с двумя квадратными скобками. Все получилось. Спасибо большое! Улыбка
8. Slavenin - 16 Июня, 2011 - 09:34:58 - перейти к сообщению
9. arhitec - 16 Июня, 2011 - 09:37:00 - перейти к сообщению
А можно еще вопрос? Улыбка
Я разбил эту строку, что бы можно было изменить цифры (что-то вроде счетчика), теперь мне нужно перевести разделенные цифры в единую строку того же вида, что и была. Как это сделать?
10. Slavenin - 16 Июня, 2011 - 09:42:24 - перейти к сообщению
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 .')';
11. arhitec - 16 Июня, 2011 - 09:44:13 - перейти к сообщению
Неа, я имею ввиду, как преобразовать все это в одну переменную, не массив?
Мне нужно будет эту строку (объединенную), записать в файл.

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

 

Powered by ExBB FM 1.0 RC1