Strict Standards: Redefining already defined constructor for class wpdb in /blog/wp-includes/wp-db.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/cache.php on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /blog/wp-includes/cache.php on line 400

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 553

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 674

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/theme.php on line 505

Strict Standards: Non-static method Advanced_Permalinks::get() should not be called statically in /blog/wp-content/plugins/advanced-permalinks/advanced-permalinks.php on line 825

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /blog/wp-includes/plugin.php on line 123

Warning: call_user_func_array() expects parameter 2 to be array, null given in /blog/wp-includes/plugin.php on line 123
[PHP] Jak sortować tablice zwykłe i asocjacyjne? » Porady PHP » egrafik.pl
BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 9 | UU: 263

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 223

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 224
[PHP] Jak sortować tablice zwykłe i asocjacyjne?
Porady PHP | 5 maj 2008 | Wizyt: 111882

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96

Wielokrotnie zachodzi potrzeba użycia tablic i odpowiedniego w nich sortowania. Np. użycia w tablicach sortowania elementów liczbowych od najmniejszego do największego lub odwrotnie. Lub też użycia w tablicach przechowujących ciągi znaków sortowania alfabetycznego. W tej poradzie przedstawię sposoby użycia takich funkcji, by odpowiednio sortować tablice jednowymiarowe zwykłe i asocjacyjne.

Przykład 1 - sortowanie zwykłych tablic zawierających dane liczbowe
Spróbujmy posortować przykładową tablicę zawierającą dane liczbowe od wartości najmniejszej do największej.

Kod: php

<?php
$liczby = array(2.52, 0.65 , 1.30, 0.99, 0.35);
sort($liczby);

for ($k=0; $k <= 4; $k++) //pętla wypisująca wartości
  echo $liczby[$k]."<br \>";
?>
 

W powyższym przykładzie tablica posortowana została wg wartości jakimi są podane w nawiasie liczby:

0.35
0.65
0.99
1.3
2.52


Przykład 2 - sortowanie zwykłych tablic zawierających dane tekstowe
Poniższy kod posortuje wartości w kolejności alfabetycznej od a do z.

Kod: php

<?php
$samochody = array("volvo", "mercedes" , "fiat", "ford", "bmw");
sort($samochody);
 
for ($k=0; $k <= 4; $k++) //pętla wypisująca wartości
  echo $samochody[$k]."<br \>";
?>

W powyższym przykładzie tablica posortowana została alfabetycznie wg wartości jakimi są podane w nawiasie marki samochodów:

bmw
fiat
ford
mercedes
volvo

Należy zwrócić uwagę, że funkcja  sort() jest czuła na wielkość znaków. W pierwszej kolejności sortowanie odbywa się wg wielkich znaków. Wartość a jest przed wartością z, ale już wartość Z jest przed wartością a.


Przykład 3 - sortowanie tablic asocjacyjnych
W przypadku tablic asocjacyjnych nie można użyć funkcji sort(). Gdybyśmy taką funkję użyli, elementy zostałyby posortowane wg numeru indexu z tablicy. Do sortowania tablic asocjacyjnych należy użyć funkcji asort() lub ksort(). W pierwszym przypadku sortowanie odbywa się wg wartości, w drugim wg klucza. 

W poniższym przykładzie stworzona zotanie tablica zawierająca trzy modele samochodów oraz ich ceny (w tys. zł.). Zastosowane zostanie sortowanie wg kolejności rosnącej: ceny - od najniższej do najwyższej. 

Kod: php

<?php
$ceny_samochodow = array ( "bmw" => "200",
  "fiat" => "50",
  "mercedes" => "150",
  );
asort($ceny_samochodow);
 
foreach($ceny_samochodow as $klucz => $wartosc)
  echo $klucz." kosztuje ".$wartosc." tysięcy złotych<br />"//wypisanie wartości
?>

Powyższy przykład wyświetli:

fiat kosztuje 50 tysięcy złotych
mercedes kosztuje 150 tysięcy złotych
bmw kosztuje 200 tysięcy złotych

Funkcja asort() posortowała elementy tablicy wg wartości jaką jest cena.

W przypadku gdybyśmy chcieli posortować tablicę wg klucza, czyli nazwy samochodu, należałoby zastosować funkcję ksort()

Kod: php

<?php
$ceny_samochodow = array ( "bmw" => "200",
  "fiat" => "50",
  "mercedes" => "150",
  );
ksort($ceny_samochodow);
 
foreach($ceny_samochodow as $klucz => $wartosc)
  echo $klucz." kosztuje ".$wartosc." tysięcy złotych<br />"//wypisanie wartości
?>

Powyższy przykład wyświetli:

bmw kosztuje 200 tysięcy złotych
fiat kosztuje 50 tysięcy złotych
mercedes kosztuje 150 tysięcy złotych


Sortowanie tablic w odwtornej kolejności
We wszystkich przykładach za pomocą funkcji sort(), asort() i ksort() stosowaliśmy sortowanie wg kolejności rosnącej. Wszystkie te funkcje posiadają odpowiedniki umożliwiając sortowanie w kolejności malejącej -  rsort(), arsort() i krsort().

Funkcja rsort() - sortuje jednowymiarowe tablice zwykłe wg wartości w kolejności malejącej.
Funkcja arsort() - sortuje jednowymiarowe tablice asocjacyjne wg wartości w kolejności malejącej.
Funkcja krsort() - sortuje jednowymiarowe tablice asocjacyjne wg klucza w kolejności malejącej.

Opracowanie: Adam Suchowski

nowe Porady PHP » zobacz wszystkie

WordPress database error: [Incorrect file format 'wp_comments']
SELECT * FROM wp_comments WHERE comment_post_ID = '912' AND comment_approved = '1' ORDER BY comment_date desc

Dodaj komentarz









 
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker