PHP: Realizzare una funzione per anagrammare una parola.

Loading

Vediamo passo passo come costruire una funzione php che chiameremo anagramma, che prende come parametro una stringa e restituisce la stessa stringa anagrammata.

Supponendo che $parola sia la stringa che vogliamo anagrammare , la prima cosa che facciamo è inserire una ad una tutte le lettere che compongono la parola, dentro un array:

Questo lo otteniamo tramite il ciclo for con all’interno un array_push(). Il ciclo for viene eseguito tante volte quante sono le lettere che compongono la parola, poi eseguiamo un push per inserire ogni singola lettera nell’array $stack.

$stack = array();
for ($i=0;$i<strlen($parola);$i++)
array_push($stack,$parola{$i});

A questo punto per mischiare le lettere possiamo utilizzare la funzione shuffle()

shuffle($stack);

Tale funzione viene applicata ad un array e come dice il nome non fa altro che mischiare gli elementi dell’array stesso, quindi dopo aver applicato tale funzione l’array $stack conterrà tutte le lettere della parola iniziale ma in ordine diverso.
La funzione shuffle() mischiera sempre in maniera diversa.


Pero ottenere l’anagramma non dobbiamo fare altro che prendere queste lettere contenute nell’array e unirle in una parola.
Il risultato desiderato si ottiene con la funzione implode() che prende come parametro un array e restituisce la stringa ottenuta concatenando tutti gli elementi dell’array.
Mettendo insieme tutti i pezzi otterremo la funzione desiderata:

function anagramma($parola){
    $stack = array();
    for ($i=0;$i<strlen($parola);$i++)
       array_push($stack,$parola{$i});
    shuffle($stack);
    return implode($stack);
}

Per mischiare le lettere di una parola non dovremo far altro che chiamare la funzione:

<?php echo anagramma("ciao"); >