Задача - регулярки, массивы

Аяяйка

Новичок
Задача - регулярки, массивы

Здравствуйте

Есть задание, решение которого на мой взгляд не оптимально и как его решить как то по другому?

/* ЗАДАНИЕ
Возьмите любой объемный текст, содержащий несколько предложений,
и поместите каждое предложение текста в элементы массива $text так,
чтобы первое предложение оказалось в элементе с индексом 0 —
$text[0], второе в элементе с индексом 1 — $text[l] и т.д. Далее в
цикле foreach преобразуйте массив $text в двумерный массив таким
образом, чтобы в элементе $text[0] [0] хранилось первое слово первого
предложения, в элементе $text[0] [l] хранилось второе слово первого
предложения и т. д. Проконтролируйте результаты работы, отправив
дамп массива в окно браузера при помощи функции p r i n t r ().
*/

PHP:
// Разбиение текста на предложения
preg_match_all('/^ [^\n]* \n?/xm', $content, $packet);

// Преобразование из 2-х мерный в 1 мерный массив по заданию 
//(или делается как то по другому ) 
foreach ($packet as $key)
    foreach ($key as $val)
        $text[] = $val;
        
// Преобразование в двумерный массив с разбиением на слова        
    foreach ($text as $key=> $val)
    {
        // Разбиение строки на слова
        preg_match_all('/[^\w]* [\w]+ [^\w]*/x', $val, $str);
    
        // Удаление одномерного элемента массива со значением напр. "предложение"
        unset($text[$key]);
        // Создание двумерного элемента массива со значением напр. "слово"
        foreach ($str as $v)
            foreach ($v as $w)                
                $text[$key][] = $w;
        
    }
        
echo "<pre>"; print_r($text); echo "</pre>";
 

Аяяйка

Новичок
))), почему такой вывод)? это может быть что угодно, откуда угодно ))) но это Учебник)
 

Sigorma

Новичок
Так, ну раз тут холивары, может кто из таких умных поможет мне лабы на пхп сделать?) О;-)
Там немноооожко) Я не лентяйка, но не успеваю все делать к сроку((( Поэтому и скопилось(
(с) тынц
лабы принято делать самостоятельно...

-~{}~ 05.02.10 23:57:

PHP:
<?php
$text = "Параллакс, сублимиpуя с повеpхности ядpа кометы, иллюстрирует вращательный Южный Треугольник, хотя это явно видно на
фотогpафической пластинке, полученной с помощью 1.2-метpового телескопа. Приливное трение выбирает годовой параллакс, день этот
 пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом. Магнитное поле, следуя пионерской работе 
Эдвина Хаббла, иллюстрирует первоначальный ионный хвост, таким образом, атмосферы этих планет плавно переходят в жидкую мантию. 
Межзвездная матеpия прекрасно выбирает популяционный индекс, но кольца видны только при 40–50. Вселенная достаточно огромна, чтобы 
астероид недоступно колеблет близкий радиант, но кольца видны только при 40–50. Прямое восхождение, оценивая блеск освещенного 
металического шарика, вызывает метеорный дождь, а оценить проницательную способность вашего телескопа поможет следующая
формула: Mпр.= 2,5lg Dмм + 2,5lg Гкрат + 4";

$result = explode(". ", $text);

for($i=0; $i<sizeof($result); $i++)
{
	$result[$i] = explode(" ", $result[$i]);
}

echo "<pre>"; print_r($result); echo "</pre>";
?>
осталось только учесть что предложение может заканчиваться не только точкой. =)
 

Аяяйка

Новичок
Спасибо, правда делать это надо регуляркой) Сделаю вариантик опубликую)
 

Sigorma

Новичок
В задании не указано _обязательное_ использование регулярных выражений. В общем то тут даже не особо нужен функционал предоставляемый регулярными выражениями.
 
Сверху