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
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….
- Comparación normal
- Comparación no sensible a minúsculas/mayúsculas
- Compara los 5 primero caracteres
- Ahora prueba la comparación natural de ambas cadenas
- Ordena de forma natural este vector [libro12,libro10,libro2,libro1]
Originally posted 2011-03-02 19:24:55.