Автор Тема: Помогите плииз  (Прочитано 2534 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн PHP ист

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите плииз
« : 11 Января 2003, 23:10:49 »
Народ помогите плииз:
Я делаю чат, и для он-лине листа мне понадобилась функция каторая удоляет одинаковые подмассивы из массива.
Пример:

$arr[0] = "arrr0";
$arr[1] = "arrr1";
$arr[2] = "arrr2";
$arr[3] = "arrr3";
$arr[4] = "arrr4";
$arr[5] = "arrr3";
$arr[6] = "arrr6";
$arr[7] = "arrr0";
?>

Как Вы видите нулевой элемент равен седьмому, а третий равен пятому.
Функция должна привести вышеуказанный код в следующий вид:

$arr[0] = "arrr0";
$arr[1] = "arrr1";
$arr[2] = "arrr2";
$arr[3] = "arrr3";
$arr[4] = "arrr4";
$arr[5] = "arrr6";
?>

Но это просто пример, на самом делле массив может иметь до 300 эллементов и расположенны они могут поразному.

И если не сложно, расскожите как можно сделать список on-line пользователе чата.

Я делаю следующим образом:
Записываю в файл максемальной длинной 300 строчек следующее:
$name|$date
Затем при выводе на экран применяю следующую функцию:

function EchoOnLineAll(){
//Данно функцией я вывожу пользователей актывных в течение последних 60 секунд.
$filein = file("on-line_users.ws");
for ($i = 0; $i    list($nick,$taim) = explode ("|",$filein[$i]);
   $time = time() - 60;
      if ($taim >= $time){
         $okn .= "$nick|";
      }
}

$grek = explode ("|",$okn);

for ($i = 0; $i <= count($grek); $i++){
   echo "$grek[$i]
\\n";
}
}

Необращыйте внимания на то, что данный код написан непроффессионально, я на PHP пишу всего 3 месяца.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите плииз
« Ответ #1 : 12 Января 2003, 00:44:07 »
$arr = array_unique($arr);
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Помогите плииз
« Ответ #2 : 12 Января 2003, 00:47:44 »
А что тебе от нас надо? У тебя всё уже готово.:) Вот только что тебе надо изменить:
1. Функция которая удаляет повторяющиеся элементы в массиве называется array_unique, не надо придумывать свою.
2. Нафига ты повторно читаешь файл? Пиши count($filein)
Цитировать
... $i


ЗЫ и на будушее нормально называй темы.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн PHP ист

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите плииз
« Ответ #3 : 12 Января 2003, 01:25:31 »
Оки... Сенкс, но возникла ещё одна проблема, строчка:
$okn .= "$nick|";
Как Удалить в конце |?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите плииз
« Ответ #4 : 12 Января 2003, 02:08:21 »
Цитировать
$okn .= "$nick|";
Как Удалить в конце |?
дык вроде после explode() ее не будет, а вообще
$okn 
substr("$nick|"0strlen("$nick|")-1)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Помогите плииз
« Ответ #5 : 12 Января 2003, 02:37:03 »
Цитировать
$okn .= "$nick|";
Как Удалить в конце |?

Кликаешь мышкой после знака "|" и нажимаешь клавишу "backspace".:D
А если по делу то делай explode.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28