Hola,
Bueno, la verdad es que tengo que confesar que no me queda muy claro lo que buscas realmente. No entiendo realmente lo que tienes en mente respecto a la variable $todas, y no se muy bien de qué hablas cuando te refieres a la `funcionX()'.
En fin, ya que me has pedido el favor de ayudarte con esto, me atreveré a presentar un pequeño ejemplo que produce la misma salida que el segmento de código que has publicado, con la diferencia de que el siguiente script hace uso de una pequeña expresión regular para extraer los fragmentos de cadena que pareces necesitar.
Quizás te sea de ayuda. Si no es así, y estás buscando otro tipo de cosas, por favor coméntalo, de modo que podamos ir buscando la solución que realmente necesitas.
Código:
<table bgcolor="#aabbcc">
<tr>
<td align="center">Opcion elegida</td>
<td align=center>Valor</td>
</tr>
<?php
$cadenas = array (
'Para poder Esta seria la opcion: Elegida AA [01]',
'imprimir el contenido Esta seria la opcion: Elegida BB [02]',
'de [ ] esteticamente Esta seria la opcion: Elegida CC [03]',
'en celdas individuales Esta seria la opcion: Elegida DD [04]');
foreach ($cadenas as $cadena) {
preg_match ('/^(.*)(\\[.*)$/', $cadena, $coincidencias);
list ($no_usado, $cadena1, $cadena2) = $coincidencias;
echo " <tr>\n <td>$cadena1</td><td>$cadena2</td>\n </tr>\n";
}
?>
</table>
<p>Sin que importe la extension de lo que halla entre los [ ]</p>
<p>Como por ejemplo:</p>
<table bgcolor="#cd8539">
<tr>
<td align="center">Opcion elegida</td>
<td align=center>Valor</td>
</tr>
<?php
$cadenas = array (
'Para poderlas Esta seria la opcion: AA [06546541]',
'imprimir Esta seria la opcion: BB [025454]',
'esteticamente Esta seria la opcion: CC [0343]',
'en tablas Esta seria la opcion: DD ' .
'[O incluso texto extenso, o no extenso]');
foreach ($cadenas as $cadena) {
preg_match ('/^(.*)(\\[.*)$/', $cadena, $coincidencias);
list ($no_usado, $cadena1, $cadena2) = $coincidencias;
echo " <tr>\n <td>$cadena1</td><td>$cadena2</td>\n </tr>\n";
}
?>
</table>
Un cordial saludo.