Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sortowanie tablic wielowymiarowych
Forum PHP.pl > Forum > Przedszkole
Fifi209
Mam problem z sortowaniem tablicy wielowymiarowej... tablica wygląda tak:
(to tylko część, całej raczej nie trzeba)
Kod
Array
(
    [amulet] => Array
        (
            [Amulet of Loss] => Array
                (
                    [npc] => Eremo
                    [price] => 4.5
                )

            [Platinium Amulet] => Array
                (
                    [npc] => Rashid
                    [price] => 0.25
                )

        )

    [armor] => Array
        (
            [Crown Armor] => Array
                (
                    [npc] => Nahbob
                    [price] => 1.2
                )

            [Dragon Scale Mail] => Array
                (
                    [npc] => Rashid
                    [price] => 4
                )

            [Golden Armor] => Array
                (
                    [npc] => Rashid
                    [price] => 2
                )

            [Knight Armor] => Array
                (
                    [npc] => Alesar
                    [price] => 0.5
                )

        )

Chciałbym posortować przykładowo tak: (malejąco po price)
Kod
Array
(
    [amulet] => Array
        (
            [Amulet of Loss] => Array
                (
                    [npc] => Eremo
                    [price] => 4.5
                )

            [Platinium Amulet] => Array
                (
                    [npc] => Rashid
                    [price] => 0.25
                )

        )


I tutaj moje pytanie, jak tego dokonać?
DiH
http://www.php.net/manual/en/function.array-multisort.php

P.S. Ta gra to zło
Fifi209
Cytat(DiH @ 19.03.2010, 01:43:17 ) *

Owszem znam tą funkcję, nawet znalazłem ciekawy przykład:
  1. <?php
  2. // Obtain a list of columns
  3. foreach ($data as $key => $row) {
  4. $volume[$key] = $row['volume'];
  5. $edition[$key] = $row['edition'];
  6. }
  7.  
  8. // Sort the data with volume descending, edition ascending
  9. // Add $data as the last parameter, to sort by the common key
  10. array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
  11. ?>
  12.  

Ale jestem chyba zbyt głupi, aby sobie poradzić z tym banalnym problemem.

Może źle rozumuję, ale powinno działać coś takiego:
  1. foreach ($items as $item) {
  2. foreach ($item as $key => $value) {
  3. $price[$key] = $value['price'];
  4. }
  5. array_multisort($price, $item);
  6. unset($price);
  7. }


Według przykładu...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.