Как сделать PHP массив в строку правильно

Как сделать PHP массив в строку правильно

Рано или поздно появляется такая задача, как перевести php массив в строку. Например, для того чтоб сохранить этот массив в базу данных, передать его как строку через URL адрес или просто вывести на экран пользователю в виде строки. Существует несколько способов это сделать, все зависит от задачи и желаемого результата, рассмотрим некоторые из них.

PHP массив в строку через implode()

Функция implode() является самым распространенным, быстрым и простым способом преобразования массива в строку. Данная функция объединяет элементы массива в строку и разделяет их указанным разделителем.

$array = ['HTML', 'CSS', 'JavaScript', 'PHP'];
$string = implode(', ', $array);
echo $string; // Выведет: HTML, CSS, JavaScript, PHP

Если же разделитесь вообще не указать, точнее, указать пустой разделитесь, то все элементы будут склеены между собой.

echo implode('', ['A', 'B', 'C']); // ABC

Массив в строку с помощью join()

PHP функция join() работает аналогично предыдущей функции implode(), они полностью взаимозаменяемы в работе.

$nums = [1, 2, 3, 4];
echo join('-', $nums); // выведет: 1-2-3-4

Преобразование сложного массива в строку через json_encode()

В одной из предыдущих статей мы рассказывали про многомерные массивы в php и работу с их данными. Так вот, такой массив тоже возможно перевести в строку (JSON строку) с помощью функции json_encode(). С помощью implode() многомерный массив в строку перевести не получится.

$user = [
  'name' => 'Илья',
  'skills' => ['PHP', 'MySQL', 'JavaScript']
];

$json = json_encode($user, JSON_UNESCAPED_UNICODE);
echo $json;
// {"name":"Илья","skills":["PHP","MySQL","JavaScript"]}

Преимущество функции json_encode() в том, что такую json строку можно легко восстановить обратно в массив с помощью функции json_decode().

PHP массив в строку с помощью serialize()

Функция serialize() обычно используется для внутреннего хранения данных массива, например, чтоб записать массив в ячейку базы данных.

$data = ['apple', 'banana', 'cherry'];
$serialized = serialize($data);
echo $serialized;
// a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"cherry";}

Для того чтоб полученную строку из базы данных снова вернуть в массив, нужно использовать следующее:

$array = unserialize($serialized);
print_r($array);

Функция unserialize() переформатирует строку обратно в массив.

Итог преобразования массива в строку

В итоге для того чтоб преобразовать php массив в строку, мы рассмотрели несколько быстрых и простых способа. А также, рассмотрели как преобразовать строку в массив обратно. Привожу в пример таблицу с рассмотренными функциями для наглядности:

Цель Подходит функция
Склеить простой список значений implode()
Получить читаемую строку для API json_encode()
Сохранить данные в БД или файл (для PHP) serialize()
Обратное преобразование explode(), json_decode(), unserialize()