Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ukladanie i sortowanie kluczy tylko numerycznych
Forum PHP.pl > Forum > PHP
kicaj
Mamy tablice:

Array
(
[a] => jeden
[f] => dwa
[b] => trzy
[3] => cztery
[d] => piec
[5] => szesc
[6] => siedem
[2] => osiem
[g] => dziewiec
)

Jak wyzerowac numeryczne klucze i je posortowac? Aby efekt byl taki:

Array
(
[a] => jeden
[f] => dwa
[b] => trzy
[d] => piec
[g] => dziewiec
[0] => osiem
[1] => cztery
[2] => szesc
[3] => siedem
)

Czy klucze numeryczne beda przed literowymi czy po nie ma znaczenia...
franki01
Jezeli mowisz o ksort" title="Zobacz w manualu PHP" target="_manual, to nie zamienia nazw kluczy. A tak prawde mowiac to samemu az trudno sprawdzic?
kicaj
Zobacz moja pierwotna tablice, potem jaki efekt chce osiagnac. Przetestuj sam...
Speedy
To jest dość proste smile.gif. Wymyśliłem na szybciocha kod, który zamieszczam poniżej:

  1. <?php
  2.  
  3. $a = array(
  4. 'a' => 'jeden',
  5. 'f' => 'dwa',
  6. 'b' => 'trzy',
  7. '3' => 'cztery',
  8. 'd' => 'piec',
  9. '5' => 'szesc',
  10. '6' => 'siedem',
  11. '2' => 'osiem',
  12. 'g' => 'dziewiec'
  13. );
  14.  
  15. print '<pre>'; 
  16.  
  17. print 'Pierwotna wersja tablicy:';
  18.  
  19. print '<br/><br/>';
  20.  
  21. print_r($a);
  22.  
  23. ksort($a);
  24.  
  25. print '<br/><br/>';
  26.  
  27. print 'Tablica potraktowana funkcją ksort:';
  28.  
  29. print '<br/><br/>';
  30.  
  31. print_r($a);
  32.  
  33. $a2 = array();
  34. $i = 0;
  35.  
  36. foreach($a as $key => $value)
  37. {
  38. if(is_int($key))
  39. {
  40. $a2[$i] = $value;
  41. $i++;
  42. }
  43. else
  44. {
  45. $a2[$key] = $value;
  46. }
  47. }
  48.  
  49. print '<br/><br/>';
  50.  
  51. print 'Wersja finalna - tablica w zmiennej $a2:';
  52.  
  53. print '<br/><br/>';
  54.  
  55. print_r($a2);
  56.  
  57. print '</pre>';
  58.  
  59. ?>


Pozdrawiam.
jang
  1. <?php
  2. $a = array(
  3. 'a' => 'jeden',
  4. 'f' => 'dwa',
  5. 'b' => 'trzy',
  6. '3' => 'cztery',
  7. 'd' => 'piec',
  8. '5' => 'szesc',
  9. '6' => 'siedem',
  10. '2' => 'osiem',
  11. 'g' => 'dziewiec'
  12. );
  13.  
  14.  
  15. $a1 = array();
  16. $a2 = array();
  17.  
  18. $i = 0;
  19.  
  20. foreach($a as $key => $value)
  21. {
  22. if(is_int($key))
  23. {
  24. $a2[$i] = $value;
  25. $i++;
  26. }
  27. else
  28. {
  29. $a1[$key] = $value;
  30. }
  31. }
  32.  
  33.  
  34. print '<pre>'; 
  35.  
  36. $wynik = array_merge($a1, $a2);
  37. print_r($wynik);
  38.  
  39. print '</pre>';
  40. ?>


  1. Array
  2. (
  3. [a] => jeden
  4. [f] => dwa
  5. [b] => trzy
  6. [d] => piec
  7. [g] => dziewiec
  8. [0] => cztery
  9. [1] => szesc
  10. [2] => siedem
  11. [3] => osiem
  12. )
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.