Как с помощью pack() запаковать массив с string значениями?

Gagablik
На сайте с 22.02.2011
Offline
57
425

// Создаю массив

$aYearColor = array_fill(0,366,'#FFFFFF');
// Запаковываю его
$aYearColorBlob = pack('a*', ...$aYearColor);
// Распаковываю
unpack('a*', $aYearColorBlob);

Но данный способ не сработает. На выходе будет array ( 1 => #FFFFFF );

И ошибка Warning: pack(): 365 arguments unused in ...

Если массив числовой, то проблем нет, всё сработает:

$aYearOrder = array_fill(0,366,0);

$aYearOrderBlob = pack('i*', ...$aYearOrder);
unpack('i*', $aYearOrderBlob);

Прочитал, что:

Для a, A, h, H число повторений определяет то, сколько символов взято
от одного аргумента данных

Но не пойму, как тогда добавить такой массив с string значениями и потом обратно его распаковать. Спасибо

M
На сайте с 04.12.2013
Offline
223
#1

Gagablik, что за йню вы написали. С какого перепуга такая сложная структура данных как массив стала строкой? Используйте сериализацию массива или конкатенацию составляющих его строк.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий