форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / Php сортировка
Автор Сообщение
Cryptex
Участник

311
# Дата: 30 Апр 2007 14:14


 
$file= file("file.txt"); 
foreach($file as $line){ 
    list($a, $b) = split("<!>", $line); 
} 


В файле file.txt например:
 
User1<!>12 
User2<!>112 
User3<!>1 
User4<!>12 
User5<!>13 



Файл постоянно изменяется. Как я могу отсортировать по порядку в данном случае переменную $b чтобы выводилось примерно это:
 
User2 - 112 
User5 - 13 
User1 - 12 
User4 - 12 
User3 - 1 


Пробовал sort() но оно требует array. В моём случае оно не постоянно... Если кто-то может помогите

acsid
Alfa Guru

2436
# Дата: 1 Май 2007 05:19 ° Поправил: acsid


Ну ты озадачил)
У меня это получилось только в 3-ри цикла, 2-ва раза открывая фаил:

 
  <? 
$file= file("file.txt"); 
$b_arr=array(); 
foreach($file as $line){ 
    list($a, $b) = split("<!>", $line); 
$b_arr[].=$b;   //загоняем все значения б в новый массив 
} 
$b_arr=rsort($b_arr);//сортируем по убыванию 
  $i =0; 
    for ($i; $i < count($b_arr); $i++) {//теперь загоняем массив $b_arr в цик 
л 
 
          $file= file("file.txt");//опять открываем фаил 
               foreach($file as $line){ 
                  list($a, $b) = split("<!>", $line); 
               if($b==$b_arr[$i]){ //если значения  $b(из фаила) и значения из 
отсортированного массива  равны 
                      $b_arr[$i]=''; // онулируем значение 
                      $b_arr[$i]="$a - $b"; // оприсваеваем значение строки 
                      } 
 
               } 
 
   } 
// теперь выводим результат 
  $i =0; 
    for ($i; $i < count($b_arr);$i++) { 
    print "$b_arr[$i] <br>"; 
    } 
 
  ?> 
 






должно вывести так:
 
User2 - 112 
User5 - 13 
User1 - 12 
User4 - 12 
User3 - 1 





Код писал прямо в форму(возможно есть ошибки), но по сути должен работать

Cryptex
Участник

311
# Дата: 1 Май 2007 08:00


После исправления ошибок:
Собственно то, что выводится... посижу ещё немного подумаю...

User5 - 13 
User1 - 12 //Специально дал 2 одинаковые цифры... 
User1 - 12 
User2 - 112 // А вот это вообще бяка... 
User3 - 1 


acsid
Alfa Guru

2436
# Дата: 1 Май 2007 08:51 ° Поправил: acsid


Cryptex
попробуй перед записью в фаил и вовремя доставания из фаила делать для кажой переменной $var=trim($var); тоесть удалять пробелы с конца и начала цифр.

» Cryptex
User1 - 12 //Специально дал 2 одинаковые цифры...

Ну а что ты ожидал увидеть после этого?

Connected
Pluged&Played

589
# Дата: 1 Май 2007 09:37


Вот вам осталось тока перевернуть

 
<?php 
 
$file= file("file.txt"); 
foreach($file as $line){ 
    list($a, $b) = explode("<!>", $line); 
    $array["$a"] = $b; 
} 
 
natsort($array); 
 
foreach($array as $index => $value){ 
    echo $index.' - '.$value.'<br>'; 
} 
 
?> 


Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:25165, gzipped size:8250

Mp3 Download || Мир Спанч боба || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]