Invertire l’ordine delle parole di una stringa in PHP.

Qualche giorno fa avevo scritto, per gioco, una frase che iniziava dall’ultima parola. Come al solito però, prima di fare questi giochi stupidi penso “come potrebbe risolvere questo problema il computer?”. Invertire tre parole di una frase è molto semplice, invertire testi lunghi – a mano – inizia a diventare qualcosa di oneroso in termini di tempo.

Il problema si risolve in maniera molto semplice con un paio di funzioni. Per amore della pulizia non ho voluto usare alcun ciclo (potevo contare le parole e salvarle in un’altra variabile partendo dall’ultima). In PHP però esiste array_reverse, una funzione che accetta in ingresso un array e lo ordina in maniera opposta.

Così, in poche righe, ho trasformato la stringa in un array, l’ho ribaltata e l’ho ricomposta. 🙂

// Codice PHP
$frase = "Questa stringa verrà ribaltata!";
$i = explode(' ', $frase);
$reverse = array_reverse($i);
$risultato = implode($reverse,' ');
echo $risultato;
// $risultato = ribaltata! verrà stringa Questa

Semplice, facile ed indolore. Anzi: indolore. ed facile, Semplice 🙂

Emanuele

6 commenti » Scrivi un commento

  1. ahahahh ero sicuro che non l’avessi fatto a mano :))

    però pensavo a qualche scriptino in bash, non php 🙂

    • Neanche i post li scrivo a mano. Ho scritto anni fa un generatore di post filosofici random. Neanche questo commento è scritto a mano.
      Io non esisto neanche. 😛
      Ciao,
      Emanuele

  2. lo sapresti scriere in C…. ad esempio
    se scrivo
    reverse ciao casa gatto
    deve apparirmi
    gatto casa ciao

    pls risp…

    • Esistono decine di modi per risolvere il problema in C. Uno che mi viene in mente al volo è usando una matrice. Ogni volta che – scorrendo la stringa – incontri uno spazio, incrementi il numero di riga e continui la scansione. Alla fine rileggi le righe con un ciclo partendo dall’ultima “riempita”.
      Ciao,
      Emanuele

Rispondi a Giuseppe Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.