whatsapp
keyboard_arrow_down Contatti

Venerdì

05

Gennaio 2024

funzioni implode() ed explode() in php per manipolare stringhe

Implode() ed explode() in php per convertire stringhe in array

  1. blog Implode() ed explode() in php per convertire stringhe in array
event_available
schedule

Le funzioni “implode()” e “explode()” sono due delle funzioni incorporate nel linguaggio di programmazione PHP che gestiscono le stringhe, infatti possono trasformare stringhe di testo in array e viceversa.

Queste funzioni sono molto utili quando si lavora con stringhe di testo e quando si necessita di manipolare e separare i dati contenuti all’interno di esse.

Vengono utilizzate di solito per:

  • Fare il conteggio delle parole di una frase
  • Separare indirizzi email dal “@xxx.it”
  • Separare numeri di telefono dal prefisso
  • Trasformare un elenco di caratteri in un array

Queste due funzioni accettano due parametri ovvero:

  • Il separatore: un qualsiasi carattere che funziona da delimitatore nella stringa
  • l’array o la stringa su cui intervenire.

Se usi WordPress ti lascio questa guida su come inserire codice php personalizzato.

La funzione implode() per creare stringhe dagli elementi di un array

Cominciamo con la funzione “implode”. Essa consente di concatenare un array di stringhe in un’unica stringa, utilizzando un delimitatore specifico. La sintassi di base della funzione “implode” è la seguente:

implode($delimitatore, $array);

In questa funzione abbiamo due parametri:

  • $delimitatore: è la stringa di delimitazione che sarà inserita tra gli elementi dell’array. Questo parametro è opzionale e, se non è presente, gli elementi dell’array verranno concatenati senza nessun carattere in mezzo.
  • $array: rappresenta l’array di elementi da unire.

Facciamo un esempio pratico

$array = array('hello', 'world', 'php');
$merged_string = implode(' ', $array);
echo $merged_string;
// result: (string) “hello world php”

In questo esempio, abbiamo un array contenente tre elementi: “hello”, “world” e “php”. Utilizzando la funzione “implode” con un delimitatore di spazio (‘ ‘), otteniamo l’output “hello world php”. Possiamo utilizzare qualsiasi delimitatore desiderato, come una virgola o un trattino.

Ariadne's Arts

Shop Online di Spiritualità e Cristalli

Bracciale feng shui pixiu Drusa in ametista Incenso angel protection Pirite grezza Bracciale in occhio di tigre
Visita lo Shop

La funzione explode() per trasformare una stringa in un array

Ora parliamo della funzione “explode” che consente di suddividere una stringa in un array, utilizzando un delimitatore specifico.

La sintassi di base della funzione “explode” è la seguente:

explode($delimitatore, $stringa);

Dove $delimitatore rappresenta il carattere o la sequenza di caratteri utilizzato come delimitatore per separare la $stringa.

Ecco un esempio di come utilizzare la funzione “explode”:

$stringa = "hello world php";
$array = explode(' ', $stringa);
print_r($array);

In questo esempio, abbiamo una stringa che contiene tre parole separate da uno spazio: “hello world php”.

Utilizzando la funzione “explode” con uno spazio come delimitatore, otteniamo un array contenente tre elementi: “hello”, “world” e “php”.

Possiamo quindi manipolare o accedere a ciascun elemento dell’array come desiderato.

Implode() su array multidimensionali

Abbiamo visto i risultati di queste due funzioni su array semplici ma se il nostro array è più complesso o multidimensionale potremmo incorrere in qualche errore. Vediamo come risolvere.

Se eseguiamo la funzione implode() su array semplici con coppie “chiave” => “valore” allora verrano concatenati solo i valori:

$array = array(
  '0' => '000',
  '1' => '111',
  'string' => 'test'
);
echo var_dump(implode('_', $array));
// result: string(12) "000_111_test"

/* se vogliamo stampare le chiavi */
echo var_dump(implode('_', array_keys($array)));
// result: string(10) "0_1_string"

Se il tuo array è multidimensionale allora bisogna prima filtrarlo con un ciclo for o foreach per rendere i risultati di tipo stringa, in questo modo:

$array = array(
  '0' => '000',
  '1' => array(0,1,2),
  'string' => 'test'
);
foreach ($array as $key => $value) {
  if (is_array($value)) {
    $array[$key] = implode('_', $value);
  }
}
echo var_dump(implode('_', $array));
// result: string(14) "000_0_1_2_test"

implode() ricorsivo su array multidimensionali

Se hai array più complessi allora puoi utilizzare questa funzione che effettua un implode() ricorsivo secondo un delimitatore stabilito:

function recursiveImplode($array, $delimiter = '-') {
  $result = array();
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      // Applica la funzione ricorsivamente agli elementi dell'array
      $result[] = recursiveImplode($value, $delimiter);
    } else {
      $result[] = $value;
    }
  }
  return implode($delimiter, $result);
}

La funzione explode() invece restituirà sempre un array con coppie “chiave” -> “valore”.

In conclusione, le funzioni “implode” ed “explode” sono strumenti potenti e versatili per lavorare con stringhe in PHP.

La funzione “implode” permette di concatenare gli elementi di un array in un’unica stringa, mentre la funzione “explode” permette di suddividere una stringa in un array utilizzando un delimitatore specifico.

Ti è piaciuto questo articolo?

favorite thumb_down
Autore articolo

Fabio

Sono un terribile realista. Pratico e determinato ma anche un grande sognatore, ecco perché do continuamente vita a nuovi progetti online e non. Nel 2019 ho fondato Eureka Web proprio per rendere possibile tutto questo. Insieme possiamo realizzare la tua idea!


Visita il sito
library_books

Leggi anche

Come inviare dati dei form con Ajax serialize() a php
Scopri
Come usare le chiavi API Google
Scopri
Come unire file Javascript e CSS in WordPress
Scopri

Contattami

perm_identity
alternate_email
phonelink_ring
message

Il tuo messaggio è stato inviato con successo!
Ti risponderemo a breve

Scrivi un commento

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

message
perm_identity
alternate_email

keyboard_arrow_up