Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Posortowanie tablicy wg indeksów z drugiej tablicy
starterrrrr
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

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


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


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. }
Go to the top of the page
+Quote Post
starterrrrr
post
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

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


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
Go to the top of the page
+Quote Post

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 Aktualny czas: 22.08.2025 - 10:16