strings - ¿Cómo comparar 2 cadenas alfabéticamente en PHP?
php compare strings ignore case (5)
A menudo utilizo natsort
( Natural Sort ), ya que, por lo general, solo quiero conservar la matriz para su uso posterior de todos modos.
Ejemplo:
natsort($unsorted_array);
var_dump($usorted_array); // will now be sorted.
Lo que dice el título. Específicamente si tengo
$array1[''name''] = ''zoo'';
$array2[''name''] = ''fox'';
¿Cómo puedo determinar que alfabéticamente el nombre de $array2
debe estar por encima de $array1
?
Llego un poco tarde (nuevamente, todavía no era programador en 2009 :-) Nadie mencionó esto todavía, pero puedes simplemente usar los operadores que usas en el número también.
< > <= >= == !=
y más
Por ejemplo:
''a'' > ''b''
devuelve false
''a'' < ''b''
devuelve true
Puedes comparar ambas cadenas con strcmp
:
Devuelve <0 si str1 es menor que str2 ; > 0 si str1 es mayor que str2 , y 0 si son iguales.
Use strcmp
. Si el primer argumento para strcmp es lexicográficamente más pequeño que el segundo, entonces el valor devuelto será negativo. Si ambos son iguales, devolverá 0. Y si el primero es lexicográficamente mayor que el segundo, se devolverá un número positivo.
nótese bien. Probablemente quiera usar strcasecmp (string1,string2)
, que ignora el caso ...
EDIT acaba de realizar los valores de diferentes matrices, podría array_merge primero, pero no estoy seguro de que eso es lo que quieres