The menu is created dynamically from the data inserted in the database earlier. But each time the website displays the menu it need to query the database, fetch the result and create the markup over and over again. This leads to a slower page load. Here comes the utility of caching. Generally the main menu is not changed frequently. So the HTML created by PHP may be saved in server and served to the client without any dynamic rebuilding. This will speed up page load time. After a predefined frequency the cache will be rebuilt automatically. Thus the change made to the database will be reflected in the main menu.
Please reply me about the idea, because I have a lot to share with you. You can get the code in here http://layzend.info/2011/06/22/multilev ... h-caching/