[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: текст в многомерный массив
antonov_sa
Здравствуйте!

У меня есть текст к примеру:

<p>Предложение 1. Предложение 2. Предложение 3.</p>
<p>Предложение 4. Предложение 5. Предложение 6.</p>
<p>Предложение 7. Предложение 8. Предложение 9.</p>

и мне нужно разобрать его на массив по параграфам и предложениям, т.е. на выходе должно получиться что-то вроде

 $arr = array( 
'параграф1' => array(
'Предложение 1',
'Предложение 2',
'Предложение 3'
),

'параграф2' => array(
'Предложение 4',
'Предложение 5',
'Предложение 6'
),

'параграф3' => array(
'Предложение 7',
'Предложение 8',
'Предложение 9'
)
);


хелп, плиз



Спустя 15 минут, 29 секунд (17.04.2010 - 11:06) Michael написал(а):
Вы просите готовый скрипт с нуля? Это работа за которую обычно платят деньги.

Покажите, что сами пробовали, что не получается.

Спустя 16 минут, 46 секунд (17.04.2010 - 11:22) antonov_sa написал(а):
Цитата (Michael @ 17.04.2010 - 08:06)
Вы просите готовый скрипт с нуля? Это работа за которую обычно платят деньги.

Покажите, что сами пробовали, что не получается.

$text = "<p>Предложение 1. Предложение 2. Предложение 3.</p>
<p>Предложение 4. Предложение 5. Предложение 6.</p>
<p>Предложение 7. Предложение 8. Предложение 9.</p>"
;

preg_match_all ("#<p>(.*)</p>#iU", $text, $regs);


получается массив, вроде
Array
(
[0] => Предложение 1. Предложение 2. Предложение 3.
[1] => Предложение 4. Предложение 5. Предложение 6.
[2] => Предложение 7. Предложение 8. Предложение 9.
)

и по нему надо еще раз пройтись и разбить элементы на предложения по точкам. Из мануала, прикрепленного вверху форума никак не могу понять как это сделать, собственно с этим и нужен хелп, заранее спс!

Спустя 1 час, 23 минуты, 48 секунд (17.04.2010 - 12:46) antonov_sa написал(а):
собственно поковырялся и сам родил, вроде работает, только не уверен что рационально)

	$text = "<p>Предложение 1. Предложение 2. Предложение 3.</p>
<p>Предложение 4. Предложение 5. Предложение 6.</p>
<p>Предложение 7. Предложение 8. Предложение 9.</p>"
;

preg_match_all ("#<p>(.*)</p>#iU", $text, $regs);

$i=0;

foreach($regs[0] as $key => $val)
{
preg_match_all ("#(.*)\.#iU", $val, $regs1);

$regs2[$i] = $regs1[0];

$i++;
}

echo "<pre>";

print_r($regs2);


на выходе

Array
(
[0] => Array
(
[0] =>

Предложение 1. [1] => Предложение 2. [2] => Предложение 3. ) [1] => Array ( [0] =>

Предложение 4. [1] => Предложение 5. [2] => Предложение 6. ) [2] => Array ( [0] =>

Предложение 7. [1] => Предложение 8. [2] => Предложение 9. ) )


единственное не могу понять, почему нулевые элементы вложенных массивов переносятся на строчку при выводе print_r, вероятно из-за кривого рег. выражения?

Спустя 3 часа, 15 минут (17.04.2010 - 16:01) Self написал(а):
$text = "<p>Предложение 1. Предложение 2. Предложение 3.</p>
<p>Предложение 4. Предложение 5. Предложение 6.</p>
<p>Предложение 7. Предложение 8. Предложение 9.</p>"
;

preg_match_all ("#<p>(.*)</p>#iU", $text, $regs);

foreach($regs[1] as $k=>$v) {
$mass['параграф'.($k+1)]=explode('.', substr($v, 0, -1));
}
echo '<PRE>';
print_r($mass);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.