Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Сортировка массивов
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
Davinchi
Отправлено: 10 Февраля, 2009 - 14:08:01
Post Id


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




Подскажите пожалуйста как отсортировать значения из файла

CODE:

id1|dfgsg|3
id5|rrnee|2
id7|c bgv|4
id9|vdgfg|4
id0|fd bb|5

что бы при записи отсортированных значений в другой файл получилось это
CODE:

id 0 |fd bb| 5
id 9 |vdgfg| 4
id 7 |c bgv| 4
id 1 |dfgsg| 3
id 5 |rrnee| 2
 
 Top
Davinchi
Отправлено: 11 Февраля, 2009 - 00:01:03
Post Id


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




Еще вопрос, как сортируется по значениям ассоциативный массив, если у двух разных ключей одинаковые значения?
 
 Top
Furax
Отправлено: 11 Февраля, 2009 - 04:39:13
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Я бы сделал на регулярных выражениях:
CODE:
<?php

header('content-type: text/plain; charset=windows-1251');

$result = array();
$matches = array();
$file = fopen('file.txt', 'r');

while ($line = fgets($file))
if (preg_match('/^id(\d+)(\|[^\|]+\|)(\d+)$/', trim($line), $matches))
$result[(int)$matches[3]][] = "id $matches[1] $matches[2] $matches[3]";
fclose($file);

foreach ($result as $key => $value)
$result[$key] = implode("\n", $value);

krsort($result);

echo implode("\n", $result);

?>
Этот код оставляет несколько значений с общим ключом в порядке следования в файле, однако, по-моему, очевидно, как тут добавить ещё 1 ключ и отсортировать по нему, если надо.

Что касается сортировки в случае нескольких одинаковых значений, то тут, по-моему, ничего не гарантируется:
CODE:
array( 4, 2, 5, 4, 1, 4 )
После сортировки выглядит так:
CODE:
Array
(
[4] => 1
[1] => 2
[3] => 4
[0] => 4
[5] => 4
[2] => 5
)
 
 Top
Davinchi
Отправлено: 14 Февраля, 2009 - 16:13:59
Post Id


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




Спасибо, подошла обычная сортировка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0392]     [ Gzipped ]