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