Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: Jak posortowac wyniki

Witam, jak posortować wyniki od największego do najmniejszego?


<?
$sciezka = "./gfx";
$lista=array();
$katalog = opendir($sciezka);
while ($plik = strtolower(readdir($katalog))) {
if (($plik!=".")&&($plik!="..")&&(end(explode('.',$plik)) <> 'db')){
$lista[]=$plik;
}
}
closedir($katalog);

$list=0;

for ($i=0;$i<count($lista);$i++) {
echo "$list) <a href=\"$sciezka/$lista[$i]\">$lista[$i]</a><br>";
$list++;
}
?>

konto usunięte

Temat: Jak posortowac wyniki

co to znaczy "najmniejszy", "najwiekszy" ? jesli chodzi Ci o rozmiar pliku, to kombinowałbym tak:


<?
$sciezka = "./gfx";
$lista=array();
$katalog = opendir($sciezka);

while ($plik = strtolower(readdir($katalog))) {
if (($plik!=".")&&($plik!="..")&&(end(explode('.',$plik)) <> 'db')){
$lista[$plik]=filesize($plik);
}
}

closedir($katalog);

asort($lista);

$lista = array_reverse($lista);

$list=0;
foreach ($lista as $plik) {
echo "$list) <a href=\"$sciezka/$plik\">$plik</a><br>";
$list++;
}
?>


Na szybko i z głowy, ale taki tam pomysłGrzegorz Kaszuba edytował(a) ten post dnia 28.08.10 o godzinie 10:08
Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: Jak posortowac wyniki

Grzegorz Kaszuba:
co to znaczy "najmniejszy", "najwiekszy" ? jesli chodzi Ci o rozmiar pliku, to kombinowałbym tak:

Sorry, chodzi mi o nazwy plików.

jest
01.jpg
02.jpg
03.jpg

ma byc
03.jpg
02.jpg
01.jpg

Edit:
Ok juz mam.


<?
$sciezka = "./gfx";
$lista=array();
$katalog = opendir($sciezka);

while ($plik = strtolower(readdir($katalog))) {
if (($plik!=".")&&($plik!="..")&&(end(explode('.',$plik)) <> 'db')){
$lista[] = $plik;
}
}
closedir($katalog);

asort($lista);
$lista = array_reverse($lista);

$list=0;
for ($i=0;$i<count($lista);$i++) {
echo "$list) <a href=\"$sciezka/$lista[$i]\">$lista[$i]</a><br>";
$list++;
}
?>


Dzieki za pomoc.Maciej Szczepański edytował(a) ten post dnia 28.08.10 o godzinie 10:28
Jakub L.

Jakub L. Programista

Temat: Jak posortowac wyniki

Kult cargo?
Nie można było po prostu:
for ($i = count($lista) - 1; $i >= 0; --$i) {
...
}

?

konto usunięte

Temat: Jak posortowac wyniki

Maciej Szczepański:
Ok juz mam.

Dzięki funkcji glob możesz swój skrypt skrócić do jednej linii:


foreach (array_reverse(glob('.\gfx\*.jpg')) as $file) echo $file . '<br />';
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: Jak posortowac wyniki

Maciej Szczepański:
for ($i=0;$i<count($lista);$i++) {

Taki detal, użycie count() jako warunek pętli powoduje obliczanie wartości przy każdej iteracji, co negatywnie wpływa na wydajność. Lepiej przypisać to do zmiennej.

konto usunięte

Temat: Jak posortowac wyniki

Bartłomiej Jończy:
Maciej Szczepański:
for ($i=0;$i<count($lista);$i++) {
>
Taki detal, użycie count() jako warunek pętli powoduje obliczanie wartości przy każdej iteracji, co negatywnie wpływa na wydajność. Lepiej przypisać to do zmiennej.

... czyli nadal w pętli:

for ($i=0,$y=count($lista);$i<$y;$i++) {

;)Robert B. edytował(a) ten post dnia 02.09.10 o godzinie 17:22
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: Jak posortowac wyniki

Robert B.:
Bartłomiej Jończy:
Maciej Szczepański:
for ($i=0;$i<count($lista);$i++) {
> >
Taki detal, użycie count() jako warunek pętli powoduje obliczanie wartości przy każdej iteracji, co negatywnie wpływa na wydajność. Lepiej przypisać to do zmiennej.

... czyli nadal w pętli:

for ($i=0,$y=count($lista);$i<$y;$i++) {
>
;)Robert B. edytował(a) ten post dnia 02.09.10 o godzinie 17:22


;)

Gdyby ktoś jednak nie załapał żartu:
$y=count($lista);
for ($i=0; $i<$y; $i++)
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: Jak posortowac wyniki

polecam iteratory z SPL
http://pl2.php.net/manual/pl/class.directoryiterator.php

konto usunięte

Temat: Jak posortowac wyniki

Bartłomiej Jończy:
...
Gdyby ktoś jednak nie załapał żartu:

Ależ... to nie żart.

Zastosowanie, które podałem jest bardziej prawidłowe niż Twoje choćby ze względu na zakres widoczności $y a uwzględnia to na co zwróciłeś uwagę (count nie jest obliczane przy każdej iteracji).
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: Jak posortowac wyniki

Robert B.:
Bartłomiej Jończy:
...
Gdyby ktoś jednak nie załapał żartu:

Ależ... to nie żart.

Zastosowanie, które podałem jest bardziej prawidłowe niż Twoje choćby ze względu na zakres widoczności $y a uwzględnia to na co zwróciłeś uwagę (count nie jest obliczane przy każdej iteracji).

Nie no, zgadzam się w zupełności, jednak przeniesienie przed pętlę jest na pewno czytelniejsze :)

Następna dyskusja:

Hmm Jak to się zaczeło




Wyślij zaproszenie do