Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка массива по первому([0])элементу в строке...?
 
 автор: method   (20.06.2005 в 09:11)   письмо автору
 
 

попробую объяснить как можно покароче и попонятней.....
Есть файл в котором хранятся все сообщения чатлан, к примеру:


1119242759|all|root||twaqaae43576e
1119242760|all|root||etrser
1119242762|all|root||esertedrh
1119242764|all|root||rrdrhn
1119242767|all|root||ergjf
1119242769|all|root||rejmk.o
1119242771|all|root||eeрогопн 
1119242773|all|root||rrdhvvb g
1119242775|all|root||eeyjyhf
1119242776|all|root||rr3444
1119242777|all|root||eew4t34
1119242779|all|root||rraw23rt
1119242780|all|root||eeцу
1119242760|all|Бот||нас покидает Маня (timeout)//При логине Васи скрипт выкинул Маню, 
//а время записывается то в которое Она последний раз обращалась к  странице 
1119242781|all|Бот||в чат влетает Вася//обратите внимание на время оно не попорядку!


ну и есть фрейм который форматирует и выводит на страницу этот файл сообщений наподобие:
$us_v = file($mes);
 $co = sizeof($us_v);
$us_v =  array_reverse ($us_v);
for($i=0;$i<$co;$i++){
  list($data,$view,$name_by,$name_to,$messa) = split('[|]', trim($us_v[$i]));
$data=date('H:i',$data);
$newus_v = explode("|", $us_v[$i]);
if(($newus_v[1]==$say_privat) && (($name_by == $_SESSION['login']) ||($name_to==$_SESSION['login'])) &&($name_by !== $_SESSION['login'])){
print "<tr>"."<font color='#A6FFFF'>"."<font size=small>".$data."</font>"."<b>"."[".'<a href="#"
  onclick= parent.send.document.send.to.value=\''.$name_by."' return false;>".$name_by."</a>"." >> ".$name_to."]"."</b>".
"</font>"." "."<font  color=red>".$messa."</font>"."<br>"."</tr>";
}................



Как мне сделать чтоб сначала сортировка осуществлялась по $data(вроде надо natsort тока не выходит) ,
а потом уже получившийся порядок сортировать функцией array_reverse (новые сообщения сверху..).......?

Канешно этого может и не достаточно для понимания всего происходящего,
потому спрашивайте .... =)

спасибо за внимание.

   
 
 автор: cheops   (20.06.2005 в 10:10)   письмо автору
 
   для: method   (20.06.2005 в 09:11)
 

А какова структура массива, в котором хранится информация из файла. Правильно ли я понял, сначала необходимо отсортировать массив по времени в прямом порядке, а потом получить его копию или отсортировать этот же массив в обратном?

   
 
 автор: method   (20.06.2005 в 16:22)   письмо автору
 
   для: cheops   (20.06.2005 в 10:10)
 

cheops ты как всегда прав =), но какую структуру массива тебе именно описать,
или код какого скрипта сюда выложить?

   
 
 автор: cheops   (20.06.2005 в 16:31)   письмо автору
 
   для: method   (20.06.2005 в 16:22)
 

Я имел ввиду $us_v, просто не заметил сперва, что он извлекается при помощи функции file. Поступите следующим образом: отсортируйте массив $us_v при помощи фукнции sort, а когда вам потребуется обратный массив, при помощи rsort - так как первым у вас идёт время - сортировка будет корректной.
<?php
  $us_v 
file($mes); 
  
sort($us_v);
?>

через некоторое время
<?php
  rsort
($us_v);
?>

   
 
 автор: method   (20.06.2005 в 18:47)   письмо автору
 
   для: cheops   (20.06.2005 в 16:31)
 

спасибо за помощь!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования