Co mówi tytuł. W szczególności jeśli mamJak porównać 2 ciągi alfabetycznie
$array1['name'] = 'zoo';
$array2['name'] = 'fox';
Jak mogę określić, że alfabetycznie $array2
Nazwy powinny pochodzić przede $array1
's?
Co mówi tytuł. W szczególności jeśli mamJak porównać 2 ciągi alfabetycznie
$array1['name'] = 'zoo';
$array2['name'] = 'fox';
Jak mogę określić, że alfabetycznie $array2
Nazwy powinny pochodzić przede $array1
's?
Użyj strcmp
. Jeśli pierwszy argument do strcmp jest mniejszy leksykograficznie od drugiego, zwracana wartość będzie ujemna. Jeśli oba są równe, to zwróci 0. Jeśli pierwszy jest leksykograficznie większy niż drugi, zwracana jest liczba dodatnia.
nb. Prawdopodobnie chcesz użyć strcasecmp (string1,string2)
, który ignoruje przypadek ...
EDIT sobie sprawę wartości z różnych tablic, może array_merge pierwsze ale nie wiem, to jest to co chcesz
można porównać oba ciągi z strcmp
:
Zwraca < 0 jeśli str1 jest mniejszy niż str2; > 0, jeśli str1 jest większe niż str2, i 0, jeśli są one równe.
Często używam natsort
(Natural Sort), ponieważ zazwyczaj chcę zachować tablicę do późniejszego użycia.
Przykład:
natsort($unsorted_array);
var_dump($usorted_array); // will now be sorted.
Jestem trochę późno (potem znowu nie programista był jeszcze w 2009 roku :-) Nikt nie wspomniał jeszcze, ale może po prostu użyć operatorów, których używasz również na numer.
< > <= >= == !=
więcej
Na przykład:
'a' > 'b'
zwraca false
'a' < 'b'
powraca true
Człowieku, to zdecydowanie najlepsza odpowiedź dla tego wątku i nie udało się stworzyć ani jednej wersji! Jeśli potrzebujesz tylko porównać dwa łańcuchy, aby znaleźć ten, który pojawia się jako pierwszy w kolejności alfabetycznej, to zdecydowanie jest to lżejsze, najbardziej sprytne rozwiązanie. Jednak tak głupi, że prawie boli. –
@MarcosBuarque: Doceniam to. Miałem zaledwie 8 lat za późno z moją odpowiedzią :-) – JMRC
Może się okazać [ 's ($ tablica1 [ 'name']) -> compareTo ($ array2 ['name']) '] (https://github.com/deli ght-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php # L495) lub ['s ($ array1 ['name'])) -> compareToIgnoreCase ($ array2 ['name'])'] (https: //github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L514) pomocne, jak można znaleźć w [tej samodzielnej bibliotece] (https://github.com/delight-im/PHP -Str). – caw