Buenas Tardes, soy nuevo aqui y en php; he estado toda la noche y esta mañana leyendo sobre cómo hacer este asunto:
el usuario me ingresa 2 palabras, y luego comparar si éstas son anagramas.
lo que hice primero fue contar sus letras, si la cantidad no coincide de plano se termina el proceso ya que no es anagrama.
si es de la misma longitud, se comienza a comparar. Quiero, mediante un ciclo for, recorrer la cadena e insertar una coma entre cada letra, luego almacenar esa salida en una variable y convertirla en un arreglo mediante explode, luego hacer un sort, volverla a convertir en string con implode, comparar ambas string nuevas con la funcion similar_text($a, $b, $percent) y si el $percent=100 entonces es anagrama, sino, no es anagrama.
realmente nunca he programado en php ni en nada, no sé si es posible hacer esto o hay otra manera mas eficiente. mi codigo que he usado es el siguiente:
<html>
<head>
<title>Numeros</title>
</head>
<body background=''>
<form method="POST" action="anagrama.php">
Introduce palabras <br><br>
Primera palabra :
<input type="text" name="palabra1" placeholder=" Palabra 1 ">
<br>
Segunda palabra :
<input type="text" name="palabra2" placeholder=" Palabra 2 ">
<br>
<input type="submit" name="enviar" value="Enviar">
</form>
<?php
$a = $_POST["palabra1"];
$b = $_POST["palabra2"];
if (strlen($a)!= strlen($b)){
echo "son palabras distintas!";
}else{
for($i=0;i<strlen($a);$i++){
$a1=$a;
}
for($i=0;i<strlen($b);$i++){
$b1=$b;
}
$array1= explode(",",$a1);
$array2= explode(",",$b1);
$orden1= sort($array1);
$orden2= sort($array2);
$x= implode(",",$orden1);
$y= implode(",", $orden2);
similar_text($x, $y, $percent);
if ($percent=100){
echo "son anagramas!";
}else{
echo "no son anagramas!";
}
}
?>
</html>
espero se entienda y me puedan dar alguna sugerencia o idea. Muchas gracias de antemano.