Para comparar cadenas en PHP usamos la función strcmp que quiere decir algo como string compare. Esta función devuelve números, y dependiendo de ellos podemos saber si una cadena es mayor, menor o igual en PHP.
Veamos entonces esta función para saber si una cadena es igual, mayor o menor que otra. Para ello debemos saber cómo funciona el código ASCII y el alfabeto.
Esto tiene que ver con el alfabeto y con el código ASCII. Cada carácter tiene una representación entera. Por ejemplo, la letra a minúscula tiene el valor de 97. La letra b tiene el valor de 98 y así sucesivamente.
Para las mayúsculas, la letra A minúscula tiene el valor de 65, la B de 66 y así sucesivamente.
Los seres humanos también comparamos así. Decimos que la palabra “antivirus” va antes de “casa” porque la letra a está antes de la c en el alfabeto. PHP también piensa así, pero usando el código ASCII.
Como lo dije, esta función recibe dos cadenas y devuelve un entero. Veamos los casos:
Sabiendo eso, podemos saber si una cadena es mayor que otra comparando si los resultados son menores, mayores o iguales que cero.
Veamos por ejemplo lo que devuelve al comparar “antivirus” y “casa” como vimos hace un momento:
<?php
echo strcmp("antivirus", "casa");
# Imprime -1
Eso es porque la cadena 1 es menor que la cadena 2. Comparemos ahora “antivirus” con “antiviruz” sólo para demostrar que la segunda es mayor que la primera porque la z va después de la s:
<?php
echo strcmp("antivirus", "antiviruz");
#Imprime -1
Si ahora la primera cadena es mayor, devolverá algo mayor que cero. Para demostrarlo, comparemos “mascota” con “casa” como se ve en el siguiente ejemplo:
<?php
echo strcmp("mascota", "casa");
#Imprime 1
Para terminar con los ejemplos, hagamos una función que imprima si una cadena es mayor, menor o igual que otra cadena en PHP.
Queda así:
<?php
function comparar($cadena1, $cadena2)
{
$comparacion = strcmp($cadena1, $cadena2);
if ($comparacion === 0) {
echo "$cadena1 y $cadena2 son iguales";
} else {
if ($comparacion < 0) {
echo "$cadena1 es menor que $cadena2";
} else {
echo "$cadena1 es mayor que $cadena2";
}
}
}
Podemos llamarla para ver los resultados, usando este código:
<?php
comparar("aventura", "bueno");
echo "\n"; #Esto es para separar en la consola
comparar("perro", "ave");
echo "\n"; #Esto es para separar en la consola
comparar("computadora", "computadoras");
echo "\n"; #Esto es para separar en la consola
comparar("hola mundo", "hola mundo");
La salida es:
Muy simple, llama a strcmp y comprueba si el resultado es 0. Así:
<?php
$cadena1 = "hola";
$cadena2 = "hola";
if (strcmp($cadena1, $cadena2) === 0) {
echo "Son iguales";
} else {
echo "No son iguales";
}
Así de fácil es comparar cadenas. Esta función servirá más tarde para, por ejemplo, hacer una búsqueda binara en un arreglo y saber cómo partirlo.
Cabe mencionar que si queremos que ignore si son mayúsculas o minúsculas podemos usar strcasecmp.
Aquí dejo la documentación oficial de strcmp.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.
Ver comentarios