Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Преобразовать массив в переменную с учетом ключей

Пока вы все тут, продолжение темы: преобразовать массив в переменную
Народ, а есть ли расширенный вариант функции 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);

Комментариев нет:

Отправить комментарий