Есть массив, который необходимо конвертировать в хорошо отформатированную строку.
Используйте функцию join():
// создаем список элементов, разделенных запятыми
$string = join(' , ' , $array);
Или цикл:
$string = ' ';
foreach ($array as $key => $value) {
$string .= ",$value";
}
$string = substr($string, 1); // удаляем ведущую " , "
Если можно использовать функцию join(), используйте; она работает быстрее, чем любой цикл PHP. Однако функция join() не очень гибкая. Во-первых, она помещает разделитель только между переменными, а не вокруг них. Чтобы вставить элементы внутрь HTML-тегов полужирного начертания текста и разделить их запятыми, сделайте следующее:
$left = '<b>';
$right = '</b>';
$html = $left . join("$right,$left", $html) . $right;
Во-вторых, функция join() не позволяет различать значения между собой. Если необходимо вставить подмножество значений, нужно использовать собственно цикл:
$string = ' ';
foreach ($fields as $key => $value) {
// не включаем пароль
if ('password' != $key) {
$string .= ",<b>$value</b>";
}
}
$string = substr($string, 1); // удаляем ведущую " , "
Обратите внимание, что разделитель всегда добавляется к каждому значению, а затем удаляется вне цикла. И хотя до некоторой степени расточительно сначала добавлять что-нибудь, а потом это же отнимать, но данный прием более привлекательный и эффективный (в большинстве случаев), чем попытка вставить логику внутрь цикла. То есть:
$string = ' ';
foreach ($fields as $key => $value) {
// не включаем пароль
if ('password' != $value) {
if (!empty($string)) { $string .= ' , '; }
$string .= "<b>$value</b>";
}
}
Теперь нужно проверять переменную $string каждый раз, когда добавляется значение. Это хуже, чем простой вызов функции substr(). А также вставлять разделитель (в данном случае запятую) в начало, вместо добавления его, потому что быстрее обрезать строку спереди, чем сзади.