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


у Меня есть следующий массив, как стал он в строку. Эта строка будет использоваться для сохранения корзину продуктов в MySQL. То есть несколько обедов и продуктов:

Товары 5,2,5 я использую этот код implode(',', $adicional);

Теперь опционные

8#-2:7#-1,8#-2:7#-1,8#-2:7#-1

Каждого, и перекусить, и его необязательно

array
(
    [8] => -2
    [7] => -1
)

string: 8#-2:7#-1 // preciso da string de esse formato
Author: Bruno Rodrigues, 2014-09-23

1 answers

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

Версия 1

$saida = '';
$cola = '';
foreach( $minhaarray as $chave => $valor ) {
   $saida .= $cola.$chave.'#'.$valor;
   $cola=':';
}

Посмотрите, работает в IDEONE


Версия 2

$saida = implode(
   ':',
   array_map(
      function( $valor, $chave ) { return $chave.'#'.$valor; },
      $minhaarray,
      array_keys( $minhaarray )
   )
);

Посмотрите, работает в IDEONE

 6
Author: Bacco, 2014-09-23 05:01:27