PHP: comprobar si palabra o letra aparece sólo una vez

Introducción

Hoy escribí una pequeña función que compara y evalúa si un carácter o string aparece únicamente una vez en otra cadena.

La función devolverá falso en caso de que no aparezca ninguna vez, ya que para que evalúe a verdadero debe aparecer una vez. No cero, no más, sino una.

Función

La función es sencilla. Solamente hace uso de la función substr_count que, como su nombre lo dice, cuenta cuántas veces aparece una porción de una cadena dentro de otra cadena.

Con eso simplemente comparamos si el resultado es 1, y si es que sí, regresamos verdadero.

Sin más que agregar, aquí dejo el código:

<?php
function apareceSoloUnaVez($cadena, $busqueda){
  return substr_count($cadena, $busqueda) === 1;
}
//Para probar
$arreglo = [
  "https://www.parzibyte.me" => "https",
  "Hola, ¿Qué haces?" => "Qué",
  ":) hola :)" => ":)",
  "Separado\ncon muchos\nsaltos de línea" => "\n",
  "Lleva muchos espacios" => " ",
  "Un espacio" => " ",
  "<br>Soy html" => "<br>",
  "<img src='imagen.png' src='perro.png'>" => "src="
  ];
  
foreach($arreglo as $cadenaPrueba => $busqueda){
  printf("Probando si '%s' aparece sólo una vez en '%s'... %s\n\n", $busqueda, $cadenaPrueba, apareceSoloUnaVez($cadenaPrueba, $busqueda) ? "Sí": "No");
}

/*
Salida:
Probando si 'https' aparece sólo una vez en 'https://www.parzibyte.me'... Sí

Probando si 'Qué' aparece sólo una vez en 'Hola, ¿Qué haces?'... Sí

Probando si ':)' aparece sólo una vez en ':) hola :)'... No

Probando si '
' aparece sólo una vez en 'Separado
con muchos
saltos de línea'... No

Probando si ' ' aparece sólo una vez en 'Lleva muchos espacios'... No

Probando si ' ' aparece sólo una vez en 'Un espacio'... Sí

Probando si '<br>' aparece sólo una vez en '<br>Soy html'... Sí

Probando si 'src=' aparece sólo una vez en '<img src='imagen.png' src='perro.png'>'... No
*/
?>

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.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *