bleze
6.02.2009, 11:26:13
W jednym katalogu przechowuje pliki tekstowe o rozszerzeniu *.txt.
W każdym z tych plików znajduje się jakaś wartość (np. "511", w innym "2001", jeszcze w innym "23").
I chcę zrobić tak żeby za pomocą sortowania tablicy według kolejności od wartości największej do najmniejszej otrzymać nazwy 5 pierwszych plików w których znajdują się największe wartości.
Na przykładzie:
plik.txt - "23"
plik1.txt - "230"
plikb2.txt - "213"
pldsik3.txt - "123"
plikadc4.txt - "3"
plik5.txt - "1000"
Otrzymam: plik5.txt, plik1.txt, plikb2.txt, pldsik3.txt, plik.txt
(nie koniecznie musi być z rozszerzeniem .txt w nazwach)
Jak coś takiego zrobić?
wookieb
6.02.2009, 11:34:09
1) Tworzysz tablice
$tab[]=array('nazwa_pliku'=>'nazwa', 'wartosc'=>'wartosc');
$tab[]=array('nazwa_pliku'=>'nazwa', 'wartosc'=>'wartosc');
itd...
2) używasz
http://php.net/array_multisortNa tym forum tez bylo o array_multisort wiec nie pytaj jak uzywac
3) Potem array_slice albo nawet petla FOR ograniczysz ilosc pokazywany wynikow. Co chcesz.
bleze
6.02.2009, 11:52:57
zapomniałem dodać jeszcze że plików w tym katalogu jest około 800 i ta liczba stale rośnie, więc to raczej odpada:
Cytat
1) Tworzysz tablice
$tab[]=array('nazwa_pliku'=>'nazwa', 'wartosc'=>'wartosc');
$tab[]=array('nazwa_pliku'=>'nazwa', 'wartosc'=>'wartosc');
itd...
wookieb
6.02.2009, 12:10:33
To lepiej trzymac te wyniki w bazie danych.
kefirek
6.02.2009, 17:26:46
Można to zrobic w ten desen
<?php
$obecny_kat = 'test/';
{
$baza[] = array('nazwa'=>$plik, 'wartosc'=>$wartosc); }
foreach($baza AS $nazwa){
echo $nazwa['nazwa'].' '.$nazwa['wartosc'].'<br>'; }
?>