Что касается ошибки, вы делаете массив как индекс для массива, вы не можете этого сделать.Что вы делаете в чем-то вроде:
$annoucementarray = array('value'); // assuming this is the value
$tmparray = array($annoucementarray => 'test'); // Warning: Illegal offset
Вы не можете использовать массив в качестве индекса, в вашем случае вы хотите, чтобы $annoucementarray
был индексом нового массива, назначенного $tmparray
.