форум вебмастеро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>';
}
?>
|
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:25165, gzipped size:8250 |