Arrays em PHP

As funções Implode e Explode em PHP servem para trabalhar com strings e arrays, uma para criar uma string a partir de um array, outra para fazer exatamente o contrário, criar um array a partir de uma string.

Nesse artigo você vai aprender a utilizar ambas, {php}implode{/php} e {php}explode{/php}.

Implode em PHP

Implode cria uma string a partir de um array dividindo os valores do array por um valor qualquer, como uma vírgula, um traço, ou qualquer valor que você preferir.

Para fazer essa divisão, você vai precisar de um array, veja:

<?php
// Um array com 4 chaves (0, 1, 2, 3)
$array = array('Meu', 'Array', 'em', 'PHP');

// Utiliza implode no array dividindo os valores por um espaço
$string = implode(' ', $array);

// Resultado: Meu Array em PHP
echo $string;
?>

Perceba que estou dividindo o array em uma única string por um espaço, ou seja, a cada chave do meu array, terei um espaço.

Eu posso utilizar qualquer valor que quiser como divisor, como vírgula, ponto, uma palavra, enfim, qualquer string. Veja o mesmo exemplo, agora dividindo o array em string com uma vírgula e um espaço.

<?php
// Um array com 4 chaves (0, 1, 2, 3)
$array = array('Meu', 'Array', 'em', 'PHP');

// Utiliza implode no array dividindo os valores por um espaço
$string = implode(', ', $array);

// Resultado: Meu, Array, em, PHP
echo $string;
?>

É extremamente simples utilizar implode com qualquer array, uma linha de código apenas:

$string = implode('DIVISOR', $array);

Explode em PHP

Explode faz exatamente o contrário de implode, ou seja, divide todas as chaves de um array em uma única string a partir de um divisor.

Veja:

<?php
// Uma frase
$string = 'Meu Array em PHP';

// Utiliza explode na string, criando um array
$array = explode(' ', $string);

// Exibe a estrutura do array
print_r( $array );

/*
Resultado:

Array
(
    [0] => Meu
    [1] => Array
    [2] => em
    [3] => PHP
)
*/
?>

Acima estou dividindo minha string em array por espaços, porém, eu poderia utilizar qualquer valor que estivesse dividindo os valores da minha string, como uma vírgula, por exemplo.

<?php
// Uma frase
$string = 'Meu, Array, em, PHP';

// Utiliza explode na string, criando um array
$array = explode(',', $string);

// Exibe a estrutura do array
print_r( $array );

/*
Resultado:

Array
(
    [0] => Meu
    [1] => Array
    [2] => em
    [3] => PHP
)
*/
?>

Se você quiser fazer um {php}trim{/php}, ou filtrar os valores do array, é possível utilizar a função array_map.

Explode também tem um terceiro parâmetro, que serve para limitar quantos valores você deseja.

<?php
// Uma frase
$string = 'Meu, Array, em, PHP';

// Utiliza explode na string, criando um array
$array = explode(',', $string, 2);

// Exibe a estrutura do array
print_r( $array );

/*
Resultado:

Array
(
    [0] => Meu
    [1] =>  Array, em, PHP
)

*/
?>

Ou seja, agora eu tenho um array com duas chaves apenas. Nem todos os valores da string foram divididos.

Implode e Explode em PHP

Como Implode e Explode fazem o oposto um do outro, é possível utilizar as duas funções em conjunto para trocar os divisores de uma string por exemplo, veja:

<?php
// Uma frase
$string = 'Meu Array em PHP';

// Troca meus espaços por um traço
$string = implode('-', explode(' ', $string));

// Resultado: Meu-Array-em-PHP
echo $string;
?>

Claro que você pode utilizar e Expressões regulares para atingir este objetivo (bem mais comum e robusto), porém, é legal entender o que você pode fazer com as funções em PHP.

Concluindo

Implode e explode são funções simples que já vem embutidas no PHP, é só utilizar.

Não deixe de seguir todas as aulas do nosso curso gratuito de PHP e de PHP Orientado a Objetos.

Caso tenha dúvidas, não hesite em comentar.