Пока вы все тут, продолжение темы: преобразовать массив в переменную
Народ, а есть ли расширенный вариант функции implode для ассоциативных массивов?
Например:
$cars = array('van'=>'volvo xc70','coupe'=>'mercedes clk gtr','suv'=>'nissan pathfinder');
$glue1 = '
';
$glue2 = ' - ';
extended_implode($glue1,$glue2,$cars);
Вывод:
van - volvo xc70
coupe - mercedes clk gtr
suv - nissan pathfinder
N.B.:
Если штатной функции нет, лично мне алгоритм не нужен. =) Так что в этом случае вопрос меняется на "какие ошибки в моем способе".
function mb_extended_implode($glue1,$glue2,$elements,$enc='utf-8'){
$out = '';
foreach($elements as $key=>$value){
$out .= $key.$glue2.$value.$glue1;
}
$out = mb_substr($out,0,mb_strlen($glue2,$enc),$enc);
return $out;
}
Ответ
$res = array_map(function($k, $v) { return "$k - $v"; }, array_keys($cars), $cars);
echo implode('
', $res);
Или вот так, в зависимости от того, нужен
на конце или нет:
$res = array_map(function($k, $v) { return "$k - $v
"; }, array_keys($cars), $cars);
echo implode('', $res);
Комментариев нет:
Отправить комментарий