Si sucede tal como dices, entonces el error es que la variable $menu_old no es un array, y al decirle [$i] te pilla la posición del contenido en vez de la posición del array.
Se supone que se arreglaría así:
Código PHP:
$menu[$i][1]=$menu_old;
Si no, verifica que $menu_old recoje bien su contenido, porque me da a mí que no lo has metido bien en array.
Si eso, pon las líneas donde llenas el contenido de $menu_old.
Saludos