Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема вывода слов-повторов


Автор: ToSHa911 18.7.2005, 17:51
Здраствуйте!
У меня проблема, которая заключается в следующем: есть текстовый файл, который хранит в себе сообщения. Сообщения разделены между собой символом [!]. Есть функция которая возвращает текст сообщения по его индексу.
Так вот, проблема заключается в том, что в случае, когда в этом файле всречаются два одинаковых сообщения, напимер 'message_1[!]message_2[!]message_1[!]', вывести все три не получаеться выводит только 'message_1' и 'message_2'.

Вот код функции и пример ее вызова:

Код

function view_mess ($read, $mess_number)
{
global $message_count;
global $glob_mess;
$end=strpos($read,"[!]");
$str_replace=$read;
for ($i=0; $i<$message_count; $i++)
    {
    $sub_str=substr($str_replace,0,$end+3);
    $message=substr($str_replace,0,$end);
    if ($i==$mess_number) $glob_mess[]=$message;
    //print("$message<br>");
    $str_replace=str_replace($sub_str,"",$read);
    $read=$str_replace;
    $end=strpos($read,"[!]");
    }
}


Пример вызова:

Код

for ($i=0; $i<$message_count; $i++)
{
view_mess($name_readed, $i); // $name_readed хранит в себе строку 

message_1[!]message_2[!]message_1[!]
print($glob_mess);
}

Автор: Mal Hack 18.7.2005, 18:12
http://php.net/array_unique

Автор: Любитель 19.7.2005, 00:02
Проще всего: считай файл в одну строку и используй explode (первый параметр - "!"), получишь массив твоих сообщений.

Автор: Mal Hack 19.7.2005, 09:26
Любитель ну он судя по всему это и делает, просто несколько другой реализацией. У него проблема с уникальностью. Об этом мой пост выше smile

Автор: Guest 20.7.2005, 16:26
Да, но array_unique удаляет из массива дублирующиеся значения, а мне нужно вывести дублирующиеся значения.

Автор: Mal Hack 20.7.2005, 16:41
Цитата(Guest @ 20.7.2005, 17:26)
а мне нужно вывести дублирующиеся значения.

Э... Первый пост четко говорит, что надо обрезать.
Если наоборот, то воспользуйся array_count_values и выведи те, которые повторяются больше 1 раза.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)