首先制作菜单

$G_STUDYDATA = array(
			"button"=>array(
				array(
					"name"=>"yx",
					"sub_button"=>array(
						array(
							"name"=>"y",	
							"type"=>"click",
							"key"=>"y",
						),
						array(
							"name"=>"x",	
							"type"=>"click",
							"key"=>"x",
						),
					),
				),
				array(
					"name"=>"看yx",
					"sub_button"=>array(
						array(
						"name"=>"yy",	
						"type"=>"click",
						"key"=>"看yy",
						),
						array(
						"name"=>"xx",	
						"type"=>"click",
						"key"=>"看xx",
						),
					),
				),

			)
		);

把菜单的内容制作好了之后,就是创建菜单了。但是菜单中有中文是存在一个问题,中文被转换成unicode了,但微信默认只接受UTF-8的json,可用下列函数(转载自网络)搞定

//解决json中文UTF-8
/**************************************************************
 *
 *    将数组转换为JSON字符串(兼容中文)
 *    @param  array   $array      要转换的数组
 *    @return string      转换得到的json字符串
 *    @access public
 *
 *************************************************************/
function my_json_encode($array) {
	arrayRecursive($array, 'urlencode', true);
	$json = json_encode($array);
	return urldecode($json);
}
/**************************************************************
   *
   *    使用特定function对数组中所有元素做处理
   *    @param  string  &$array     要处理的字符串
   *    @param  string  $function   要执行的函数
   *    @param  boolean $apply_to_keys_also     是否也应用到key上
   *    @access public
   *
 *************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
	static $recursive_counter = 0;
	if (++$recursive_counter > 1000) {
		die('possible deep recursion attack');
	}
	foreach ($array as $key => $value) {
		if (is_array($value)) {
			arrayRecursive($array[$key], $function, $apply_to_keys_also);
		} else {
			$array[$key] = $function($value);
		}
 
		if ($apply_to_keys_also && is_string($key)) {
			$new_key = $function($key);
			if ($new_key != $key) {
				$array[$new_key] = $array[$key];
				unset($array[$key]);
			}
		}
	}
	$recursive_counter--;
}

创建菜单

$data = $G_STUDYDATA;
			$getAccessTonkenURL = " https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;//access_token的方法大家应该会吧
			$jsondata = my_json_encode($data);//本函数为自定义函数,见上面的代码
			$re = curl_post($jsondata, $getAccessTonkenURL);
			//解析创建结果
			$dere = json_decode($re,true);
			$giveback = "创建菜单".$dere['errmsg'];//json接收成功后会返回一个json信息,其中errmsg的值为ok,失败则为失败原因。

删除菜单则是

//删除菜单
			$re = get_content("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$access_token);
			//解析创建结果
			$dere = json_decode($re,true);
			$giveback = "删除菜单".$dere['errmsg'];

其它的大家自己都会的哦
自定义菜单