Wat de titel zegt. Vooral als ik
$array1['name'] = 'zoo';
$array2['name'] = 'fox';
Hoe kan ik bepalen dat de naam van $array2
alfabetisch boven die van $array1
moet komen?
Antwoord 1, autoriteit 100%
Gebruik strcmp
. Als het eerste argument voor strcmp lexicografisch kleiner is dan het tweede, is de geretourneerde waarde negatief. Als beide gelijk zijn, wordt 0 geretourneerd. En als de eerste lexicografisch groter is dan de tweede, wordt een positief getal geretourneerd.
nb. U wilt waarschijnlijk strcasecmp(string1,string2)
gebruiken, waarbij hoofdletters worden genegeerd. ..
Antwoord 2, autoriteit 14%
Je kunt beide strings vergelijken met strcmp
:
Retourneren < 0 als str1kleiner is dan str2; > 0 als str1groter is dan str2, en 0 als ze gelijk zijn.
Antwoord 3, autoriteit 11%
Ik ben een beetje laat (dan was ik in 2009 nog geen programmeur 🙂 Niemand heeft dit nog genoemd, maar je kunt gewoon de operators gebruiken die je ook op nummer gebruikt.
< > <= >= == !=
en meer
Bijvoorbeeld:
'a' > 'b'
retourneert false
'a' < 'b'
retourneert true
http://php.net/manual/en/language.operators .comparison.php
BELANGRIJK
Er is een fout, die je kunt vinden in de reacties hieronder.
Antwoord 4, autoriteit 2%
Ik gebruik vaak natsort
(Natural Sort), aangezien ik de array meestal toch gewoon wil bewaren voor later gebruik.
Voorbeeld:
natsort($unsorted_array);
var_dump($usorted_array); // will now be sorted.
Antwoord 5
EDIT heeft zojuist waarden van verschillende arrays gerealiseerd, zou eerst array_mergekunnen zijn maar weet niet zeker of dat is wat je wilt