php

Comparar cadenas con strcmp en PHP

Introducción

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.

¿Qué significa que una cadena sea mayor o menor?

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.

Comparar cadenas con strcmp en PHP

Como lo dije, esta función recibe dos cadenas y devuelve un entero. Veamos los casos:

  • Devuelve 0 si ambas cadenas son iguales
  • Si la primer cadena es menor que la segunda, devolverá un número negativo (puede ser -1, -2, etcétera)
  • Por otro lado, si la primera cadena es mayor que la segunda, devolverá un número positivo (puede ser 1, 2, etcétera)

Sabiendo eso, podemos saber si una cadena es mayor que otra comparando si los resultados son menores, mayores o iguales que cero.

Ejemplo de comparación de cadenas en PHP

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

Función para saber si una cadena es mayor, menor o igual que otra

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:

Comparar cadenas con strcmp

Entonces, ¿cómo sabemos si dos cadenas son iguales?

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";
}

Conclusión

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

1 semana hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

1 semana hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

2 semanas hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

3 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

3 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.