login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Multidimensionale array sorteren (Opgelost)

Offline Martijn2008 - 02/08/2009 19:58
Avatar van Martijn2008PHP beginner Hoi,

Ik heb de volgende multidimensionale array:

  1. array(0) {
  2. ["Album 1"]=>
  3. array(2) {
  4. [0]=>
  5. string(12) "DSC0001.JPG"
  6. [1]=>
  7. string(12) "DSC0002.JPG"
  8. [2]=>
  9. string(12) "DSC0003.JPG"
  10. }
  11. }


Deze array wil ik graag sorteren op albums. Bijvoorbeeld: Album 1, Album 2, Album 3 enz. Weet iemand misschien hoe dat moet?

Bedankt alvast voor jullie reacties.

Groeten,

Martijn

9 antwoorden

Gesponsorde links
Offline Raze - 02/08/2009 20:05
Avatar van Raze PHP beginner http://www.site...rde_Arrays

het eerste puntje legt uit hoe je zo'n functie maakt
Offline Martijn2008 - 02/08/2009 20:39
Avatar van Martijn2008 PHP beginner Mijn array is anders dan in die tutorial.
Offline Raze - 02/08/2009 20:47
Avatar van Raze PHP beginner in de tutorial is de array als volgt:


  1. [0] => array ( [0] => 0,
  2. [1] => 1
  3. ),
  4. [1] => array ( [0] => 0,
  5. [1] => 1
  6. )
  7. )


die van u is (als ik het goed begrijp):

  1. ['album1'] => array ( [0] => string(12) "DSC0001.JPG",
  2. [1] => string(12) "DSC0002.JPG",
  3. [2] => string(12) "DSC0003.JPG"
  4. )
  5. )


ik zie eerlijk gezegd weinig verschil tussen deze array's
Offline Martijn2008 - 03/08/2009 00:57
Avatar van Martijn2008 PHP beginner Het lukt me niet. Heb al deze functies al geprobeerd.
Offline djb - 03/08/2009 03:18
Avatar van djb PHP beginner ksort moet werken 

  1. $array = array(
  2. "Album 1" =>
  3. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG"),
  4. "Album 3" =>
  5. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG"),
  6. "Album 2" =>
  7. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG")
  8. );
  9. ksort($array);
  10. print_r($array);
  11. /* Output:
  12. Array
  13. (
  14.   [Album 1] => Array
  15.   (
  16.   [0] => DSC0001.JPG
  17.   [1] => DSC0002.JPG
  18.   [2] => DSC0003.JPG
  19.   )
  20.  
  21.   [Album 2] => Array
  22.   (
  23.   [0] => DSC0001.JPG
  24.   [1] => DSC0002.JPG
  25.   [2] => DSC0003.JPG
  26.   )
  27.  
  28.   [Album 3] => Array
  29.   (
  30.   [0] => DSC0001.JPG
  31.   [1] => DSC0002.JPG
  32.   [2] => DSC0003.JPG
  33.   )
  34.  
  35. )
  36. */
Offline Martijn2008 - 03/08/2009 12:20 (laatste wijziging 03/08/2009 12:22)
Avatar van Martijn2008 PHP beginner Ooops, ik zie al wat ik verkeerd doe. Ik heb een foutje gemaakt in mijn voorbeeld array. Het is geen `Album 1`, maar `1. AlbumNaam`. Functie ksort() geeft overigens niet de gewenste uitkomst.De array ziet er dus zo uit:

  1. array(0) {
  2. ["1. AlbumNaam"]=>
  3. array(2) {
  4. [0]=>
  5. string(12) "DSC0001.JPG"
  6. [1]=>
  7. string(12) "DSC0002.JPG"
  8. [2]=>
  9. string(12) "DSC0003.JPG"
  10. }
  11. }
Offline Martijn - 03/08/2009 12:23
Avatar van Martijn Crew PHP let er op dat als je tot elf heb het zo word:
1
10
11
2
etc, omdat je op string sorteert
Offline Martijn2008 - 03/08/2009 12:46
Avatar van Martijn2008 PHP beginner Precies! Dat is nou net mijn probleem. Weet je toevallig ook de oplossing? 
Offline Rik - 03/08/2009 13:04 (laatste wijziging 03/08/2009 13:13)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Met PHP.net: natsort sorteert hij wel op de goede volgorde, maar heb je weer dat probleem met het behouden van de keys.

Edit:
Zo werkt hij dan wel:
  1. $array = array(
  2. "Album 1" =>
  3. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG"),
  4. "Album 10" =>
  5. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG"),
  6. "Album 2" =>
  7. array("DSC0001.JPG","DSC0002.JPG","DSC0003.JPG")
  8. );
  9. uksort($array, 'strnatcmp');
  10. print_r($array);
  11. /* Output:
  12. Array
  13. (
  14.   [Album 1] => Array
  15.   (
  16.   [0] => DSC0001.JPG
  17.   [1] => DSC0002.JPG
  18.   [2] => DSC0003.JPG
  19.   )
  20.  
  21.   [Album 2] => Array
  22.   (
  23.   [0] => DSC0001.JPG
  24.   [1] => DSC0002.JPG
  25.   [2] => DSC0003.JPG
  26.   )
  27.  
  28.   [Album 10] => Array
  29.   (
  30.   [0] => DSC0001.JPG
  31.   [1] => DSC0002.JPG
  32.   [2] => DSC0003.JPG
  33.   )
  34. )
  35. */
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s