Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]tworzenie tablicy, wczytywanie wartości z plików
bleze
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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_multisort
Na 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.

Ten post edytował wookieb 6.02.2009, 11:35:05


--------------------
Go to the top of the page
+Quote Post
bleze
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


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...
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To lepiej trzymac te wyniki w bazie danych.


--------------------
Go to the top of the page
+Quote Post
kefirek
post
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Można to zrobic w ten desen
  1. <?php
  2. $obecny_kat = 'test/';
  3. $kat = opendir($obecny_kat);
  4. $baza = array();
  5. while ($plik = readdir($kat))
  6. {
  7. $wartosc = file_get_contents('test/'.$plik);  
  8. $baza[] = array('nazwa'=>$plik, 'wartosc'=>$wartosc);
  9. }
  10. closedir($kat);
  11.  
  12. foreach($baza AS $nazwa){
  13. echo $nazwa['nazwa'].' '.$nazwa['wartosc'].'<br>';
  14. }
  15. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:21