Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sortowanie tablic wielowymiarowych
Fifi209
post 18.03.2010, 23:23:26
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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ć?

Ten post edytował fifi209 18.03.2010, 23:24:03


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DiH
post 19.03.2010, 01:43:17
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


http://www.php.net/manual/en/function.array-multisort.php

P.S. Ta gra to zło
Go to the top of the page
+Quote Post
Fifi209
post 19.03.2010, 11:55:25
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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

Ten post edytował fifi209 19.03.2010, 13:29:53


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:52