login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Object Sorteren

Offline tomie94 - 12/02/2008 17:36
Avatar van tomie94PHP interesse Hallo,

ik wil een object sorteren. of, beter gezecht omdraaien. Nu staat dus id 1 boven en ik wil dat id 2 boven staat en id 1 onder. ik heb al gekeken naar de functie sort. maar volgens mij is het daarvoor niet bedoeld(niet voor een object).

PS: het object heet $header. deze haal ik op via imap

4 antwoorden

Gesponsorde links
Offline Rik - 12/02/2008 17:51
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als ik het goed begrijp heb je dus een array met objecten? Heb je een stukje script? 
Offline tomie94 - 12/02/2008 17:54 (laatste wijziging 12/02/2008 17:55)
Avatar van tomie94 PHP interesse ik haal de header op via imag dus $headers = imap_headers($mailbox) nu staan alle berichten in de verkeerde volgorde. ik krijg de oudste berichten bovenaan. een print_r van het object:
  1. stdClass Object (
  2. [date] => Sat, 3 Nov 2007 11:53:10 +0100
  3. [Date] => Sat, 3 Nov 2007 11:53:10 +0100
  4. [subject] => PHPFreakz workshop dag: nog enkele plaatsen beschikbaar!
  5. [Subject] => PHPFreakz workshop dag: nog enkele plaatsen beschikbaar!
  6. [message_id] => <5e0dce2e171572130457b9befee26726@localhost.localdomain> [toaddress] => tom_web_freak@live.nl
  7. [to] => Array ( [0] => stdClass Object ( [mailbox] => tom_web_freak [host] => live.nl ) )
  8. [fromaddress] => PHPFreakz
  9. [from] => Array ( [0] => stdClass Object ( [personal] => PHPFreakz
  10. [mailbox] => geen_reactie
  11. [host] => phpfreakz.nl ) )
  12. [reply_toaddress] => PHPFreakz
  13. [reply_to] => Array ( [0] => stdClass Object ( [personal] => PHPFreakz [mailbox] => geen_reactie [host] => phpfreakz.nl ) ) [senderaddress] => PHPFreakz
  14. [sender] => Array ( [0] => stdClass Object ( [personal] => PHPFreakz [mailbox] => geen_reactie [host] => phpfreakz.nl ) ) [Recent] => N
  15. [Unseen] =>
  16. [Flagged] =>
  17. [Answered] =>
  18. [Deleted] =>
  19. [Draft] =>
  20. [Msgno] => 1
  21. [MailDate] => 3-Nov-2007 11:53:10 +0100
  22. [Size] => 3901 [udate] => 1194087190 )
Offline timmie_loots - 12/02/2008 18:10
Avatar van timmie_loots PHP gevorderde
  1. $headers = array_reverse($headers, true);
Offline Rik - 12/02/2008 18:13 (laatste wijziging 12/02/2008 18:14)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dat kan dan met PHP.net: usort. Voorbeeldje:
  1. // Test class
  2. class obj {
  3. var $id;
  4. }
  5.  
  6. // Array met objecten
  7. $objs = array();
  8.  
  9. // Een aantal objecten met willekeurig id in de array zetten
  10. for ($i = 0; $i < 50; $i++) {
  11. $obj = new obj;
  12. $obj->id = rand(1, 1000);
  13. $objs[] = $obj;
  14. }
  15.  
  16. // Sorteren met een callback
  17. usort($objs, 'objSort');
  18.  
  19. // Functie om te sorteren
  20. function objSort($arg1, $arg2) {
  21. return $arg1->id - $arg2->id;
  22. }


Hoe die callback precies werkt kan je het beste lezen op php.net daar leggen ze het duidelijk uit. In het kort:
php.net schreef:
De vergelijkingsfunctie moet een integer teruggeven die kleiner dan, gelijk aan of groter dan 0 is, wanneer het eerste argument respectievelijk kleiner dan, gelijk aan of groter wordt beschouwd dan het tweede argument.


Edit:
Als ze echt precies verkeerd om staan kan je makkelijker de manier van timmie gebruiken.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s