login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Snippets > array_reverze();


Reacties op het script array_reverze();

Offline  Stijn
Gepost op: 05 september 2007 - 14:43
PHP expert



  1. $array = range( 0 , 9 );
  2. rsort( $array );
Dat is toch voldoende 

Offline  Wim
Gepost op: 05 september 2007 - 15:03
Crew algemeen



voldoende voor een for-lus, niet voor een foreach lus.

bij sommige php versies (weet niet exact welke) krijg je dan deze output:
  1. (
  2. [25] => a
  3. [24] => b
  4. [23] => c
  5. [22] => d
  6. [21] => e
  7. [20] => f
  8. [19] => g
  9. [18] => h
  10. [17] => i
  11. [16] => j
  12. [15] => k
  13. [14] => l
  14. [13] => m
  15. [12] => n
  16. [11] => o
  17. [10] => p
  18. [9] => q
  19. [8] => r
  20. [7] => s
  21. [6] => t
  22. [5] => u
  23. [4] => v
  24. [3] => w
  25. [2] => x
  26. [1] => y
  27. [0] => z
  28. )


wat resulteerd in range('a','z') als je een foreach gebruikt!

Offline  xSc
Gepost op: 06 september 2007 - 10:45
Onbekend



Niet echt geweldig. Ik volg Stijn.

Offline  leendert
Gepost op: 06 september 2007 - 11:47
HTML beginner



ja ik volg ook Stij en anders icm http://nl3.php.net/array_reverse

Offline  Rik
Gepost op: 06 september 2007 - 15:07
Gouden medailleGouden medaille

Crew algemeen




Op zich handig om een array om te draaien, maar hij bestaat al zoals leendert al aangeeft.
Jij hebt hem waarschijnlijk niet gevonden omdat het array_reverse is en niet array_reverze... 

Voor degenen die geinteresseerd zijn in het omkeer algoritme zou het misschien wel leerzaam zijn om jouw functie te bekijken. 

Edit:
Een admin hoort een typfout als reverze eigenlijk wel te zien...  

Offline  marten
Gepost op: 06 september 2007 - 16:29
Beheerder



Citaat:
Een admin hoort een typfout als reverze eigenlijk wel te zien..


De gebruiker geeft zijn functie een naam. Als hij deze zo wil noemen dan moet hij dit vooral doen. Dus bovenstaande slaat nergens op.

Offline  Wim
Gepost op: 06 september 2007 - 16:33
Crew algemeen



Boukefalos schreef:
Op zich handig om een array om te draaien, maar hij bestaat al zoals leendert al aangeeft.
Jij hebt hem waarschijnlijk niet gevonden omdat het array_reverse is en niet array_reverze... 

Voor degenen die geinteresseerd zijn in het omkeer algoritme zou het misschien wel leerzaam zijn om jouw functie te bekijken. 

Edit:
Een admin hoort een typfout als reverze eigenlijk wel te zien...  


array_reverse is al ingebruik zoals je zelf aangeeft, dus 't is geen typo...

Bovendien, array_reverse is hetzelfde als rsort. De values worden niet van positie gewisseld in de array. Persoonlijk gebruik ik nooit een for lus om een array te doorlopen, maar altijd een foreach! Als je dan een foreach gebruikt heeft de array_reverse functie geen effect om te sorteren op naam bvb (switch tussen ASC/DESC)

Offline  Rik
Gepost op: 06 september 2007 - 17:12
Gouden medailleGouden medaille

Crew algemeen




Mijn reactie was echt niet bedoeld om jullie af te kraken ofzo hoor. 

wimmarien schreef:
Bovendien, array_reverse is hetzelfde als rsort.

Als je een array met daarin een 'range' gaat gebruiken wel ja. Probeer dit maar eens:
  1. <?php
  2. $array = array(4, 2, 9, 1, 6);
  3. rsort($array);
  4. print_r($array);
  5. ?>
Output schreef:
Array
(
[0] => 6
[1] => 1
[2] => 9
[3] => 2
[4] => 4
)
Array
(
[0] => 9
[1] => 6
[2] => 4
[3] => 2
[4] => 1
)
array_reverse sorteert het dus helemaal niet...

wimmarien schreef:
De values worden niet van positie gewisseld in de array.
Dat ligt eraan of je bij array_reverse het tweede argument $preserve_keys mee geeft.

marten schreef:
De gebruiker geeft zijn functie een naam. Als hij deze zo wil noemen dan moet hij dit vooral doen.

Niet mee eens... Ik denk dat het alleen maar verwarrend is om een naam te geven die zo veel op de naam van de originele php functie lijkt.

Omdat de array_reverze functie recursief werkt zou ik hem eerder array_reverse_recursive noemen. Maar dat moet je zelf weten.

Offline  Scott
Gepost op: 09 september 2007 - 01:00
Gouden medaille

PHP ver gevorderde




Ik vind je voorbeeld echt ranzig. Dat je de functie array_reverse niet kent kan gebeuren. Dat je dan een eigen functie maakt die hetzelfde doet is logisch (als je hem ook nodig hebt tenminste ). Echter, het voorbeeld  ob_start() en dergelijke functies zijn in dit geval echt níet de manier om de output van print_r in $output te zetten. Daarvoor heeft print_r het tweede argument, waarmee je kan aangeven of de code geëchod of gereturnd wordt. Zet je het tweede argument op 1 (of true, wat jij wilt), dan returnt hij alleen:

  1. print_r($array);
  2. $output = ob_get_contents();


wordt dan
  1. $output = print_r($array, 1);

Offline  Wim
Gepost op: 09 september 2007 - 13:39
Crew algemeen



print_r is een van de wijnige functies waarvoor ik nog nooit op php.net geweest was, en had dus ook geen idee van het bestaan van een 2de parameter

Offline  Scott
Gepost op: 14 september 2007 - 00:07
Gouden medaille

PHP ver gevorderde




wimmarien schreef:
print_r is een van de wijnige functies waarvoor ik nog nooit op php.net geweest was, en had dus ook geen idee van het bestaan van een 2de parameter


Zo'n vermoeden had ik al, daarom wees ik je daar even op ;) Nu weet je het wel en gebruik je de code uit dat voorbeeld hopelijk nooit meer op die manier...

Offline  Thomas
Gepost op: 14 september 2007 - 11:12
Moderator



Hm, on a sidenote: Op het moment dat je met (meerdimensionale) arrays aan de slag gaat, ben je in feite (zelf) data-structuren aan het bouwen. Als er de wens is om in "omgekeerde" volgorde door je datastructuur heen te lopen, dan zou je datastructuur hier zelf geschikt voor moeten zijn, in plaats van dat je alle elementen binnen je datastructuur omdraait/verwisselt/... om dit makkelijk te doen. Deze zou van zichzelf zo handig opgezet / ingericht moeten zijn, dat dit eenvoudig kan (loop).

Als de behoefte ontstaat voor dit soort functies, is het misschien verstandig om te kijken of je datastructuur niet wat handiger opgezet kan worden .


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.114s