PHP Funciones de comparación de caracteres

Ahora toca el turno a las funciones de comparación de caracteres. Son 5 las funciones que PHP proporciona para comparar caracteres, se indican a continuación.
Funciones para comparar caracteres

  • strcmp($cadena1,$cadena2), sensible a mayúsculas y minúsculas.
  • strcasecmp($cadena1,$cadena2), no sensible a mayúsculas/minúsculas
  • strncmp($cadena1,$cadena2,$n), compara los primeros n caracteres de dos cadenas, si una de las dos cadenas en menos que n, se reduce n al tamaño adecuado
  • strnatcmp($cadena1,$cadena2), hace la comparación de forma natural y es sensible a mayúsculas y minúsculas
  • strnatcasecmp($cadena1,$cadena2), hace la comparación de forma natural y es no sensible a mayúsculas y minúsculas

Valores de retorno de las funciones de comparación en PHP

  • <0, si cadena1 menor que cadena2
  • 0 si son iguales
  • >0 si cadena2 menor que cadena1
  • Ejemplo de comparación de cadenas en PHP

    Veamos todo esto con ejemplos y veremos también la función natsort.

    <?php
    $cadena1="Frase de ejemplo para substr()";
    $cadena2="FRASE DE EJEMPLO para substr()";
    
    echo "<p>".strcmp($cadena1,$cadena2)."</p>";
    echo "<p>".strcasecmp($cadena1,$cadena2)."</p>";
    echo "<p>".strncmp($cadena1,$cadena2,5)."</p>";
    echo "<p>".strnatcmp($cadena1,$cadena2)."</p>";
    echo "<p>".strnatcasecmp($cadena1,$cadena2)."</p>";
    
    //Veamos el orden natural con la función na
    
    $v1 = $v2 = array("img12.png", "img10.png", "img2.png", "img1.png");
    sort($v1);
    echo "<p>Orden normal</p>";
    echo "<p>";
    foreach ($v1 as $elemento)
    	echo $elemento." ";
    echo "</p>";
    natsort($v2);
    echo "<p>Orden natural</p>";
    echo "<p>";
    foreach ($v2 as $elemento)
    	echo $elemento." ";
    echo "</p>";
    ?>
    

    Ejercicios

    Dadas estas cadenas: “Hola yo soy la cadena100” y “Hola yo SOY la cadena2”. Haz las siguientes comparaciones, indicando textualmente la cadena menor y la mayor. Es decir, debes decir: La cadena menor es….

    1. Comparación normal
    2. Comparación no sensible a minúsculas/mayúsculas
    3. Compara los 5 primero caracteres
    4. Ahora prueba la comparación natural de ambas cadenas
    5. Ordena de forma natural este vector [libro12,libro10,libro2,libro1]

    Originally posted 2011-03-02 19:24:55.

    Deja un comentario