Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Posortowanie tablicy wg indeksów z drugiej tablicy
Forum PHP.pl > Forum > PHP
starterrrrr
Witam.

Mam peną tablice z kluczami i przypadkową wartościa.

Potrzebował bym posortowac ta tablice wg tego jak są poukładane klucze w drugiej tablicy. Poniżej przykład:

  1.  
  2. <?
  3. //tablica,która chce posortować.
  4. $kolumna['aaaaaa'] = 'jakas tam tresc';
  5. $kolumna['bbbbbb'] = 'jakas tam tresc';
  6. $kolumna['cccccc'] = 'jakas tam tresc';
  7. $kolumna['dddddd'] = 'jakas tam tresc';
  8. $kolumna['eeeeee'] = 'jakas tam tresc';
  9. $kolumna['ffffff'] = 'jakas tam tresc';
  10. $kolumna['gggggg'] = 'jakas tam tresc';
  11. $kolumna['hhhhhh'] = 'jakas tam tresc';
  12.  
  13.  
  14. //chce posortować tak:
  15. $wybrano[] = 'bbbbbb';
  16. $wybrano[] = 'aaaaaa';
  17. $wybrano[] = 'dddddd';
  18. $wybrano[] = 'ffffff';
  19.  
  20. foreach($kolumna as $key => $value) {
  21. //$checked zależna czy $key istnieje w wartości tablicy wybrano - czyli czy wybrano tą zmienną
  22. print('<br> <input type="checkbox" name="wybrano[]" value="'.$key.'" '.$checked.'> '.$key.' -> '.$value.' ');
  23.  
  24. }
  25. ?>
  26.  


jest tablica $kolumna, która chce posortowac wg kluczy $wybrano. Jeżeli nie ma wśród wybranych tej włąsnie kolumny to leci na koniec, ale jest dalej w pętli wyświetlana.

Czy kto mółby podpowiedzięc, w jaki sposób to posortować?
Damonsson
Jak już musisz to tak robić, to na przykład dodaj sobie przed tym foreach jeszcze jeden i zrób:

  1. foreach($wybrano as $key) {
  2. print('<br> <input type="checkbox" name="wybrano[]" value="'.$key.'" '.$checked.'> '.$key.' -> '.$kolumna[$key].' ');
  3. unset($kolumna[$key]);
  4. }
starterrrrr
Znalazłem własnie takie cos:


  1.  
  2. unction sortArrayByArray(Array $array, Array $orderArray) {
  3. $ordered = array();
  4. foreach($orderArray as $key) {
  5. if(array_key_exists($key,$array)) {
  6. $ordered[$key] = $array[$key];
  7. unset($array[$key]);
  8. }
  9. }
  10. return $ordered + $array;
  11. }
  12.  


ale kolegi pomysł teżw sumie zadziałałby
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.