Объясните, что вы подразумеваете под словом «оно останавливается после первого шага». Том прав, $ BoxType и $ Boxtype - это не разные переменные, но, похоже, $ BoxType всегда получает «bus_box». Если бы это действительно «остановка после первого шага», $ BoxType был бы просто тем, к чему он был инициализирован, в случае, если $ bb [$ id] [0] было «bizz», а $ Boxtype было бы «home_box».