Lo que dice el título. Específicamente si tengoCómo comparar 2 cadenas alfabéticamente
$array1['name'] = 'zoo';
$array2['name'] = 'fox';
¿Cómo puedo determinar que alfabéticamente $array2
's nombre debe estar por sobre $array1
' s?
Lo que dice el título. Específicamente si tengoCómo comparar 2 cadenas alfabéticamente
$array1['name'] = 'zoo';
$array2['name'] = 'fox';
¿Cómo puedo determinar que alfabéticamente $array2
's nombre debe estar por sobre $array1
' s?
Uso 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.
nb. Es posible que desee utilizar strcasecmp (string1,string2)
, que ignora caso ...
EDITAR sólo valores realizados de diferentes matrices, podría array_merge primeros, pero no estoy seguro de que eso es lo que desea
Es posible comparar las dos cadenas con strcmp
:
devoluciones < 0 si str1 es menor que str2; > 0 si str1 es mayor que str2, y 0 si son iguales.
A menudo uso natsort
(Natural Sort), ya que por lo general sólo quiero preservar la matriz para su uso posterior de todos modos.
Ejemplo:
natsort($unsorted_array);
var_dump($usorted_array); // will now be sorted.
Estoy un poco tarde (una vez más no un programador estaba todavía en 2009 :-) Nadie mencionó esto todavía, pero se puede simplemente utilizar los operadores de los que hace uso en el número también.
< > <= >= == !=
y más
Por ejemplo:
'a' > 'b'
devuelve false
'a' < 'b'
vuelve true
Hombre, esta es definitivamente la mejor respuesta para este hilo y ¡no tenía un solo voto alternativo! Si solo necesita comparar dos cadenas para encontrar simplemente la que viene primero en orden alfabético, definitivamente es la solución más liviana y más inteligente. Sin embargo, tan estúpido que casi duele. –
@MarcosBuarque: lo aprecio. Solo llegué 8 años tarde con mi respuesta :-) – JMRC
Usted puede encontrar [ 's ($ matriz1 [ 'nombre']) -> compareTo ($ array2 ['name']) '] (https://github.com/deli) ght-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php # L495) o ['s ($ array1 ['name']) -> compareToIgnoreCase ($ array2 ['name'])'] (https: //github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L514) útil, como se encuentra en [esta biblioteca independiente] (https://github.com/delight-im/PHP -Str). – caw