Además de lo que ya te han dicho, te hago saber una cosa sobre el uso de foreach. Al recorrer un array con la instrucción foreach en realidad se trabaja con una copia del array, por lo que los cambios que hagas para
$item->description (en tu caso) no se verán reflejados después.
De la documentación de PHP sobre el uso de
foreach:
Cita: Note: Hay que tener en cuenta que foreach trabaja con una copia de la matriz especificada y no la lista en si, por ello el puntero de la lista no es modificado como en la función each(), y los cambios en el elemento de la matriz retornado no afectan a la matriz original. De todas maneras el puntero interno a la matriz original avanza al procesar la matriz. suponiendo que bucle foreach se ejecuta hasta el final, el puntero interno a la matriz estar/aacute; al final de la matriz.
Cita: http://es.php.net/manual/es/control-structures.foreach.php