public function build_category_json($type, $parent_id = 0, $prefix = '')
	{
		if (!$category_list = $this->fetch_category($type, $parent_id))
		{
			return false;
		}
		
		if ($prefix)
		{
			$_prefix = $prefix . ' ';
		}
		
		foreach ($category_list AS $category_id => $val)
		{
			$data[] = array(
				'id' => $category_id,
				'title' => $_prefix . $val['title'],
				'description' => $val['description'],
				'sort' => $val['sort'],
				'parent_id' => $val['parent_id'],
				'url_token' => $val['url_token']
			);
			
			if ($val['child'])
			{
				$prefix .= '-';
				
				$data = array_merge($data, json_decode($this->build_category_json($type, $val['id'], $prefix), true));
			}
			
			unset($prefix);
		}
			
		return json_encode($data);
	}
代码中 unset($prefix); 的使用导致树结构层次上出现了问题。建议改为:
if ($val['child']) { $tmp_prefix = $prefix. '-'; // 修改 1 $data = array_merge($data, json_decode($this->build_category_json($type, $val['id'], $tmp_prefix ), true)); // 修改 2 } //unset($prefix); // 修改 3 }
AI智能回复搜索中,请稍后...