15, diciembre - 2018

Comparar cadenas en PHP

Comparar cadenas de texto en PHP

PHP posee varias funciones sofisticadas para la comparación de cadenas de texto o strings, más allá del clásico operador de igualdad (==) tenemos una serie de opciones de comparación para evaluar si una cadena es parcialmente igual a otra, si es exactamente igual y similares. Vamos a ver de qué maneras podemos realizar comparaciones de cadenas en PHP y que podemos lograr con dichas comparaciones.

Comparación de cadenas con strcmp(), strcasecmp() y strnatcmp()

Estas tres funciones nos van a permitir comparar dos cadenas de texto para ver si son iguales, exáctamente iguales, diferentes o exáctamente diferentes. Dependiendo de si queremos que haga discriminación entre mayúsculas o minúsculas o no. Su uso es algo complejo, básicamente lo que hace es, primeramente coger la primera cadena y comenzar carácter a carácter a compararlos con la segunda, si ve que la totalidad de caracteres son iguales devolverá cero, con strcmp() no discrimina entre mayúsculas y minúsculas, con strcasecmp() sí lo hace. En caso de que en la 1º cadena existan caracteres que no estén en la segunda comenzará a contar esos caracteres y devolverá su número en positivo, y viceversa, en caso de que en la 2º cadena existan caracteres que no estén en la primera cadena, devolverá el número de caracteres que no existan en la segunda en negativo. Podemos ver algunos ejemplos a continuación.


//////////////////////////////////////////////
$cad1 = "Esta es otra cadena";
$cad2 = "ESTA ES OTRA CADENA";
$or1 = strcasecmp($cad2, $cad1);
echo $or1;
/** RESPUESTA */
// 0
$or1 = strcmp($cad2, $cad1);
echo $or1;
/** RESPUESTA */
// -1
$or2 = strcmp("Uno dos", "Uno");
echo $or2;
/** RESPUESTA */
// 4
$or3 = strcmp("Una", "Una cadena");
echo $or3;
/** REPUESTA */
// -7
//////////////////////////////////////////////

Comparar la longitud de una cadena

PHP como la mayoría de lenguajes de programación trae la función strlen() para comprobar la longitud de una cadena, con ella, vamos a poder saber los caracteres que posee una cadena, empezando por el 1 hasta el total de caracteres existentes, como apunte diremos que los espacios en blanco y los caracteres especiales también son contados. Vemos un ejemplo a continuación.

//////////////////////////////////////////////
$cad1 = "Esta es una cadena de x caracteres";
$cadlength = strlen($cad1);
echo $cadlength;
/** RESPUESTA */
// 34
$cad2 = "\r\nU\r\n";
echo strlen($cad2);
/** RESPUESTA */
// 5
//////////////////////////////////////////////
$cad_a = "Esta es una cadena de x caracteres";
$cad_b = "Esta cadena es ligéramente más larga";
$a = strlen($cad_a); $b = strlen($cad_b);
if($a == $b) {
   echo "Las dos cadenas son iguales";
}else {
    if($a < $b) {
        $rest = $b - $a;
        echo "La cadena a es menor que la b por $rest caracteres";
    }else {
        $rest = $a - $b;
        echo "La cadena a es mayor que la b por $rest caracteres";
    }
}
/** RESPUESTA */
// La cadena a es menor que la b por 4 caracteres
//////////////////////////////////////////////
¿Te ha parecido interesante este contenido..?
En ese caso, te pedimos por favor que nos des tu valoración graicas a esto podemos mejorar nuestras lecciones. Gracias.
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Social Media

  • YouTube

    Suscríbete a nuestro canal de YouTube para ver todos nuestros vídeos sobre programación

  • Twitter

    Síguenos en Twitter e infórmanos de ello, es muy probable que también te sigamos

  • Facebook

    Estamos pensando si abrir una página de Facebook o no...

  • LinkedIn

    En breve...

  • Instagram

    En breve...

  • Github

    En breve...