Впервые столкнулся с необходимостью хранения строкой сложного массива. Строку вроде делает правильно, но unserialize её неправильно парсит.
Массив формируется примерно так:
$tiles1 = array(
array(
'name' => 'tile1',
'thumbnail' => '',
'content' => '',
'url' => '',
'size' => '4x2',
'theme' => 'theme1',
'link' => ''
),
array(
'name' => 'tile2',
'thumbnail' => '',
'content' => '',
'url' => '',
'size' => '4x2',
'theme' => 'theme2',
'link' => ''
)
);
$tiles2 = array(
array(
'name' => 'tile3',
'thumbnail' => '',
'content' => '',
'url' => '',
'size' => '4x2',
'theme' => 'theme3',
'link' => ''
),
array(
'name' => 'tile4',
'thumbnail' => '',
'content' => '',
'url' => '',
'size' => '4x2',
'theme' => 'theme4',
'link' => ''
)
);
$container1 = array(
'size' => 'full',
'theme' => 'black',
'tiles' => $tiles1
);
$container2 = array(
'size' => 'full',
'theme' => 'red',
'tiles' => $tiles2
);
$tile_containers[] = $container1;
$tile_containers[] = $container2;
serialize($tile_containers);
распаковка:
строку получаем в переменную $options
$value=unserialize($options);
foreach($value as $avalue){
echo($avalue);
}
echo выдаёт только 1-й элемент $tile_containers[]. второй сжирает.
full
black
Array (Array дальше парсится. Содержимое tiles1правильное)
Народ, бьюсь 2 дня. Скажите: Где косяк? Или так в принципе делать нельзя?
Заранее благодарен