Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 21:01   #1
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию Разбивка строки по два слова

Приветствую!
Помогите пожалуйста решить задачу.
Собственно вопрос в заголовке.

Есть переменная с текстом.
И ее нужно разбить по два слова.
Как это можно сделать?
Если использовать explode(' ', $str);
ТО разбивает по одному слову.
record222 вне форума Ответить с цитированием
Старый 13.02.2013, 22:00   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

разбей по одному - потом в цикле по 2 соединяй и будет тебе счастье
ADSoft вне форума Ответить с цитированием
Старый 13.02.2013, 22:07   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Можно и с помощью explode всё решить:
explode – разбиваем по пробелам на отдельные слова
array_chunk – группируем в массивы по 2 слова
foreach – проходим по массиву
implode – объединяем 2 слова в одну строку
На выходе – массив элементов из строк по 2 слова.
Andkorol вне форума Ответить с цитированием
Старый 16.02.2013, 01:21   #4
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию

Код:
$key = 'ЭТОТ ТЕКСТ Я РАЗБИВАЮ НА КУСКИ';
$key_ex = explode(' ', $key);

$key_ex_2 = array_chunk($key_ex, 2);
foreach ($key_ex_2 as $v1) {
	foreach ($v1 as $v2) {
	echo $v2." ".$v2;
	}
}
Пробую сделать вот так, но получается не то что нужно... Подскажите в чем проблема?

Вот что выводит:
Цитата:
ЭТОТ ЭТОТТЕКСТ ТЕКСТЯ ЯРАЗБИВАЮ РАЗБИВАЮНА НАКУСКИ КУСКИ
record222 вне форума Ответить с цитированием
Старый 16.02.2013, 09:28   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Цитата:
Сообщение от record222 Посмотреть сообщение
Код:
$key = 'ЭТОТ ТЕКСТ Я РАЗБИВАЮ НА КУСКИ';
$key_ex = explode(' ', $key);

$key_ex_2 = array_chunk($key_ex, 2);
foreach ($key_ex_2 as $v1) {
	foreach ($v1 as $v2) {
	echo $v2." ".$v2."<br>";
	}
}
Пробую сделать вот так, но получается не то что нужно... Подскажите в чем проблема?

Вот что выводит:
Ставим перевод строки и радуемся
ADSoft вне форума Ответить с цитированием
Старый 16.02.2013, 10:11   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от record222 Посмотреть сообщение
Пробую сделать вот так, но получается не то что нужно... Подскажите в чем проблема?
PHP код:
$str 'ЭТОТ ТЕКСТ Я РАЗБИВАЮ НА КУСКИ';
$grouped array_chunk(explode(' '$str), 2);
foreach(
$grouped as $two_words){
    
$imploded[] = implode(' '$two_words);
}
var_dump($imploded); 
Результат:
PHP код:
array
  
=> string 'ЭТОТ ТЕКСТ' (length=19)
  
=> string 'Я РАЗБИВАЮ' (length=19)
  
=> string 'НА КУСКИ' (length=15

Последний раз редактировалось Andkorol; 16.02.2013 в 10:14.
Andkorol вне форума Ответить с цитированием
Старый 16.02.2013, 12:10   #7
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
Хорошо

Цитата:
Сообщение от Andkorol Посмотреть сообщение
PHP код:
$str 'ЭТОТ ТЕКСТ Я РАЗБИВАЮ НА КУСКИ';
$grouped array_chunk(explode(' '$str), 2);
foreach(
$grouped as $two_words){
    
$imploded[] = implode(' '$two_words);
}
var_dump($imploded); 
Результат:
PHP код:
array
  
=> string 'ЭТОТ ТЕКСТ' (length=19)
  
=> string 'Я РАЗБИВАЮ' (length=19)
  
=> string 'НА КУСКИ' (length=15
Спасибо, большое! Все отлично работает!
record222 вне форума Ответить с цитированием
Старый 16.02.2013, 12:11   #8
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Ставим перевод строки и радуемся
Этот вариант выдает в одной строке два слова, но они одинаковые....
record222 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на экран строки, меняя местами два соседних слова voodooism Общие вопросы C/C++ 1 23.01.2013 22:52
Даны два слова. Получить третье слово из неповторяющихся символов, входящих как в первое, так и во второе слова. dlinkz Паскаль, Turbo Pascal, PascalABC.NET 8 01.02.2012 11:09
Дана строка слов,отделённых пробелом,в конце строки точка.поменять местами два центральных слова Dima170792 Помощь студентам 4 05.05.2011 23:04
Разбивка строки на части ForzaJuve Общие вопросы C/C++ 2 01.11.2010 23:12
Разбивка строки на лексемы Proger_1 Общие вопросы C/C++ 3 29.03.2010 20:38