PHP implodir

Resumo : neste tutorial, você aprenderá como usar a implode()função PHP para unir uma lista de strings usando um separador.

Introdução à função implode() do PHP

A implode()função PHP permite unir um array de strings por um separador. Aqui está a sintaxe da implode()função:

implode ( string $separator , array $array ) : stringLinguagem de código:  PHP  ( php )

A implode()função possui dois parâmetros:

  • O $separatoré o separador que separa duas strings. O $separatorpadrão é uma string vazia.
  • O $arrayé um array de strings para unir.

A implode()função retorna uma nova string resultante da união de elementos de string no $array com o separador.

A ordem dos elementos da string na string de resultado é a mesma ordem em que aparecem no $array.

Se o array estiver vazio, a implode()função retornará uma string vazia.

Observe que a join()função é o alias da implode()função para que você possa usá-los de forma intercambiável.

Exemplos de funções PHP implode()

Vejamos alguns exemplos de uso da implode()função.

1) Exemplo de uso da função implode() para unir strings

Suponha que você tenha uma lista de nomes de colunas, incluindo first_name, last_name e email. E você deseja transformá-lo em um cabeçalho de um arquivo CSV.

Para fazer isso, você pode usar a implode()função para unir os elementos da string assim:

<?php

$columns = ['first_name', 'last_name', 'email'];
$header = implode(',', $columns);

echo $header;Linguagem de código:  PHP  ( php )

Saída:

first_name,last_name,emailLinguagem de código:  PHP  ( php )

2) Usando a função implode() com a função array_map()

Se quiser substituir o sublinhado (_) em cada elemento, você pode fazer da seguinte maneira:

<?php

$columns = ['first_name', 'last_name', 'email'];
$header = implode(',', array_map(fn ($c) => str_replace('_', ' ', $c), $columns));

echo $header;Linguagem de código:  PHP  ( php )

Como funciona.

  • Primeiro, array_map()retorna um novo array com a string de sublinhado ( _) de cada elemento substituída pelo espaço.
  • Em segundo lugar, implode()une as strings do array retornado da função array_map().

3) Usando a função implode() com a função array_filter()

O exemplo a seguir ilustra como usar a implode()função com a array_filter()função:

<?php

$columns = ['ssn', 'first_name', 'last_name', 'password', 'email', 'phone'];
$excludes = ['ssn', 'password'];

$header = implode(',', array_filter($columns, fn ($c) => !in_array($c, $excludes)));

echo $header;Linguagem de código:  PHP  ( php )

Saída:

first_name,last_name,email,phoneLinguagem de código:  PHP  ( php )

Como funciona.

  • Primeiro, defina duas matrizes de strings, uma para colunas e outra para excluir colunas.
  • Segundo, use a array_filter()função para filtrar as colunas da lista excluída.
  • Terceiro, use a implode()função para unir as strings no array retornado pela array_filter()função.

4) Usando a função PHP implode() com um exemplo de array associativo

Se você passar um array associativo para a implode()função, ela unirá apenas os valores do array e desconsiderará as chaves do array. Por exemplo:

<?php

$person = [
    'first_name' => 'John',
    'last_name' => 'Doe',
    25,
    'Female'
];

echo implode(',', $person);Linguagem de código:  PHP  ( php )

Saída:

John,Doe,25,FemaleLinguagem de código:  PHP  ( php )

5) Usando a função PHP implode() com um array que possui um elemento

O seguinte define uma função chamada get_header()que retorna uma lista de colunas separadas por vírgula:

<?php

function get_header(array $columns): string
{
    if (1 === count($columns)) {
        return $columns[0];
    }

    return implode(',', $columns);
}Linguagem de código:  PHP  ( php )

A get_header()função retorna o primeiro elemento do $columnsarray se o $columnsarray tiver um elemento. Caso contrário, ele retornará uma lista de strings separadas por vírgula na $columnsmatriz.

O seguinte mostra como usar a get_header()função:

<?php

echo get_header(['first_name']); // first_name
echo get_header(['first_name', 'last_name']); // first_name,last_nameLinguagem de código:  PHP  ( php )

Porém, o código no get_header()é desnecessário, pois a implode()função já possui uma lógica para manipular o array com um elemento. Por exemplo:

<?php

echo implode(',', ['first_name']); // first_name
echo implode(',', ['first_name', 'last_name']); // first_name,last_nameLinguagem de código:  PHP  ( php )

Quando a matriz de entrada possui um elemento, a implode()função não adiciona um separador final, que é a vírgula neste exemplo.

Resumo

  • Use a função PHP implode()para unir strings em um array com um separador entre cada elemento.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *