[PHP] array sorteer probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik moet een bestaand DNS interface script (voor powerdns) aanpassen zodat de domeinen op alfabetische volgorde worden getoond ipv "willekeurig" nu.

Ik krijg dus een array aangeleverd (deze array layout kan ik niet wijzigen) die er als volgt uitziet als ik een print_r($domains); geef:

code:
1
2
3
4
5
Array ( 
[0] => domain Object ( [id] => 53659 [name] => dutchie.net [master] => [type] => master ) 
[1] => domain Object ( [id] => 61048 [name] => koedje.com [master] => [type] => master ) 
[2] => domain Object ( [id] => 53660 [name] => bodie.eu [master] => [type] => master) 
etc etc



Wat ik wil is dat de lijst op [name] op alfabetische volgorde wordt getoond, ik heb al de hele php manual sort en multisort door gelezen en getest, maar met geen enkele sort functie wat ik heb getest krijg ik het voor elkaar dat de lijst in alfabetische volgorde om het veld "name" wordt gesorteerd
Getest heb ik met:
array_multisort
sort
ksort
natsort

Telkens veranderd de volgorde wel maar niet op het name veld.
Kan iemand me adviseren want ik snap het niet geheel waarom dit niet werkt.

Acties:
  • 0 Henk 'm!

  • haneev
  • Registratie: November 2005
  • Laatst online: 15:56
Kijk hier eens naar:

http://nl3.php.net/manual/nl/function.usort.php

Met deze functie kan je een eigen vergelijk functie maken, en in die functie bepaal je of hij hoger of lager moet staan. $a en $b zijn de 2 arrays die vergeleken worden. (kijk ook bij strcmp)

Acties:
  • 0 Henk 'm!

  • Tiemez
  • Registratie: December 2003
  • Laatst online: 24-10-2022
PHP:
1
2
3
4
5
6
7
8
9
function sortDomain($a, $b) {

        return strcmp($a->name, $b->name);

}

usort($domains, 'sortDomain');

print_r($domains);