Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sortowanie tablic wielowymiarowych
Forum PHP.pl > Forum > Przedszkole
lutador
Witam,

mam tablice dwuwymiarową. Chciałbym ją po sortować, po salesprice, użyłem funkcji array_multisort ale chyba w nie prawidłowy sposób.
PHP zwraca błąd Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent

  1.  
  2. $a = array();
  3.  
  4. $a[ITEMNUMBER][0] = "IP1000";
  5. $a[ITEMNUMBER][1] = "IP1001";
  6. $a[ITEMNUMBER][2] = "IP1002";
  7. $a[ITEMNUMBER][3] = "IP1003";
  8. $a[SALESPRICE][0] = "1.22";
  9. $a[SALESPRICE][1] = "1.33";
  10. $a[SALESPRICE][2] = "2.33";
  11. $a[SALESPRICE][3] = "4.33";
  12.  
  13.  
  14. print_r($a[SALESPRICE]);
  15.  
  16. array_multisort($a[SALESPRICE], SORT_ASC, $a[ITEMNUMBER], SORT_ASC, $a);
  17.  
auto-all
  1. asort($a[SALESPRICE]);
lutador
asort sortuje ale musi byc zachowana relacjia ITEMNUMBER - SALESPRICE.
auto-all
Cytat(lutador @ 15.04.2011, 12:52:27 ) *
asort sortuje ale musi byc zachowana relacjia ITEMNUMBER - SALESPRICE.
A nie jest?
  1. Array ( [3] => 1.22 [2] => 1.33 [1] => 2.33 [4] => 4.33 )
Indexy nie są zmieniane

Edit...

żeby nie było wątpliwości:
  1. foreach ($a[SALESPRICE] as $key=>$value){
  2. echo 'dla '. $a[SALESPRICE][$key] .' mamy '.$a[ITEMNUMBER][$key].'<br />';
  3. }
pmir13
Jeśli w array_multisort chcesz wykorzystywać więcej niż jeden typ sortowania, dla każdego musisz podać wszystkie trzy parametry.
  1. $a = array();
  2.  
  3. $a['ITEMNUMBER'][0] = "IP1000";
  4. $a['ITEMNUMBER'][1] = "IP1001";
  5. $a['ITEMNUMBER'][2] = "IP1002";
  6. $a['ITEMNUMBER'][3] = "IP1003";
  7. $a['SALESPRICE'][0] = "0.22";
  8. $a['SALESPRICE'][1] = "1.33";
  9. $a['SALESPRICE'][2] = "2.33";
  10. $a['SALESPRICE'][3] = "4.33";
  11. print_r($a);
  12. array_multisort($a['SALESPRICE'], SORT_ASC, SORT_NUMERIC, $a['ITEMNUMBER'], SORT_ASC, SORT_STRING );
  13. print_r($a);
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.