В этом руководстве вы узнаете, как использовать функцию PHP implode () для объединения массива строк в одну строку с помощью разделителя.
Функция PHP implode() позволяет объединить массив строк с помощью разделителя. Синтаксис функции implode():
implode ( string $separator , array $array ) : string
Функция implode () имеет два параметра:
Функция implode() возвращает новую строку, полученную в результате соединения строковых элементов в массиве с помощью разделителя.
Порядок строковых элементов в результирующей строке такой же, как и порядок их появления в массиве.
Если массив пуст, функция implode () возвращает пустую строку.
Обратите внимание, что функция join() является псевдонимом функции implode(), поэтому вы можете использовать их как взаимозаменяемые.
Давайте рассмотрим несколько примеров использования функции implode().
Предположим, у вас есть список имен столбцов, включая first_name, last_name и адрес электронной почты. И вы хотите превратить его в заголовок файла CSV.
Для этого вы можете использовать функцию implode() для соединения строковых элементов следующим образом:
<?php
$columns = ['first_name', 'last_name', 'email'];
$header = implode(',', $columns);
echo $header;
Вывод:
first_name,last_name,email
Если вы передадите ассоциативный массив в функцию implode(), она объединит только значения массива и проигнорирует ключи массива. Например:
<?php
$person = [
'first_name' => 'John',
'last_name' => 'Doe',
25,
'Female'
];
echo implode(',', $person);
Вывод:
John,Doe,25,Female
* С функцией array_map мы познакомимся подробнее в следующем разделе
Если вы хотите заменить подчеркивание (_) в каждом элементе, вы можете сделать это следующим образом:
<?php
$columns = ['first_name', 'last_name', 'email'];
$header = implode(',', array_map(fn ($c) => str_replace('_', ' ', $c), $columns));
echo $header;
Вывод:
first name,last name,email
Как это работает:
В следующем примере показано, как использовать функцию implode() с функцией array_filter():
<?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;
Вывод:
first_name,last_name,email,phone