Преобразование массива в строку

Задача
Есть массив, который необходимо конвертировать в хорошо отформатированную строку.

Решение
Используйте функцию join():

// создаем список элементов, разделенных запятыми
$string = join(',', $array);
Или цикл:
$string = '';
foreach ($array as $key => $value) {
$string .= ",$value";
}
$string = substr($string, 1); // удаляем ведущую ","


Обсуждение
Если можно использовать функцию join(), используйте; она работает быстрее, чем любой цикл PHP. Однако функция join() не очень гиб-кая. Во-первых, она помещает разделитель только между переменными, а не вокруг них. Чтобы вставить элементы внутрь HTML-тегов полужирного начертания текста и разделить их запятыми, сделайте следующее:

$left = '';
$right = '';
$html = $left . join("$right,$left", $html) . $right;


Во-вторых, функция join() не позволяет различать значения между собой. Если необходимо вставить подмножество значений, нужно использовать собственно цикл:

$string = '';
foreach ($fields as $key => $value) {
// не включаем пароль
if ('password' != $key) {
$string .= ",$value";
}
}
$string = substr($string, 1); // удаляем ведущую ","


Обратите внимание, что разделитель всегда добавляется к каждому значению, а затем удаляется вне цикла. И хотя до некоторой степени расточительно сначала добавлять что-нибудь, а потом это же отнимать, но данный прием более привлекательный и эффективный (в большинстве случаев), чем попытка вставить логику внутрь цикла. То есть:

$string = '';
foreach ($fields as $key => $value) {
// не включаем пароль
if ('password' != $value) {
if (!empty($string)) { $string .= ','; }
$string .= "$value";
}
}


Теперь нужно проверять переменную $string каждый раз, когда добавляется значение. Это хуже, чем простой вызов функции substr(). А также вставлять разделитель (в данном случае запятую) в начало, вместо добавления его, потому что быстрее обрезать строку спереди, чем сзади.
Теги:
string, value, вставить, разделитель, right, substr, foreach, строку, внутрь, между, добавляется, использовать, password, fields, необходимо, пароль , удаляем, array, нужно, функцию, включаем, функция, цикла, удаляется, расточительно, сначала, нибудь, степени, потом, значению, затем, отнимать, прием, добавлять, массива
Добавлено: 21 Июля 2018 07:14:58 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...