join()
La funzione join() in PHP unisce gli elementi di un array in una stringa. È nota anche come funzione implode().
Introduzione
La funzione join() in PHP unisce gli elementi di un array in una singola stringa, inserendo un separatore (spesso chiamato "colla") tra ciascun elemento. È un alias di implode() — le due funzioni sono identiche, quindi puoi usare il nome che risulta più leggibile nel tuo codice.
Questa pagina illustra la sintassi di join(), entrambi i modi per chiamarla, cosa succede con valori di tipo misto e annidati, e gli errori comuni da evitare.
Sintassi
join(string $separator, array $array): string
join(array $array): string$separator— la stringa di separazione inserita tra ciascun elemento. Se omessa, viene usata una stringa vuota"".$array— l'array i cui valori vengono uniti. Vengono usati solo i valori; le chiavi dell'array vengono ignorate.
La funzione restituisce la stringa unita.
Ordine degli argomenti: Poiché
join()è un alias diimplode(), l'ordine tradizionale "separatore prima, array secondo" è quello da utilizzare. La forma legacy in cui l'array veniva prima è stata rimossa in PHP 8.0.
Esempio base
Questo produce l'output:
apple, banana, orangeQui join() incolla i tre valori insieme con ", " tra di essi. Il risultato viene memorizzato in $fruit_string e stampato con echo.
Unire senza separatore
Se si chiama join() con solo l'array, gli elementi vengono concatenati direttamente senza nulla tra loro:
<?php
$parts = ["2024", "06", "21"];
echo join($parts); // 20240621
echo "\n";
echo join("-", $parts); // 2024-06-21Come vengono convertiti i valori
Ogni valore viene convertito in stringa prima di essere unito, seguendo le normali regole di conversione in stringa di PHP:
<?php
$mixed = [1, 2.5, true, false, null, "text"];
echo join("|", $mixed);Questo produce l'output:
1|2.5|1|||textNota che true diventa "1", mentre false e null diventano stringhe vuote — ecco perché si vedono separatori | consecutivi. Fai attenzione quando unisci array che possono contenere booleani o null.
Costruire output in stile CSV o HTML
join() è utile ogni volta che occorre appiattire una lista in testo — stringhe di query, righe CSV o un elenco di attributi HTML:
<?php
$row = ["Alice", "[email protected]", "Admin"];
echo join(",", $row); // Alice,[email protected],Admin
echo "\n";
$classes = ["btn", "btn-primary", "active"];
echo '<button class="' . join(" ", $classes) . '">OK</button>';Errori comuni
- Gli array multidimensionali non funzionano.
join()appiattisce solo un livello. Un elemento array annidato viene convertito nella stringa letterale"Array"e genera un avviso. Appiattire prima i dati. join()è l'inverso diexplode(). Usaexplode()per dividere una stringa in un array, ejoin()/implode()per riunirla.- Le chiavi vengono scartate. Sia le chiavi numeriche che quelle stringa vengono ignorate; vengono uniti solo i valori, nel loro ordine interno.
Funzioni correlate
implode()— funzione identica con il suo nome principale.explode()— divide una stringa in un array (operazione inversa).str_split()— divide una stringa in parti di lunghezza fissa.