public function array_to_ul($arr, $ul_tag = 'ul', $li_tag = 'li')
{
$has_items = false;
$retStr = '<' . $ul_tag . '>';
if (is_array($arr)) {
foreach ($arr as $key => $val) {
if (!is_array($key) and $key and $val) {
$key = str_replace('_', ' ', $key);
$key = ucwords($key);
if (is_array($val)) {
if (!empty($val)) {
$has_items = true;
if (is_numeric($key)) {
$retStr .= '<' . $ul_tag . '>';
$retStr .= '<' . $li_tag . '>' . $this->array_to_ul($val, $ul_tag, $li_tag) . '</' . $li_tag . '>';
$retStr .= '</' . $ul_tag . '>';
} else {
$retStr .= '<' . $li_tag . '>' . $key . ': ' . $this->array_to_ul($val, $ul_tag, $li_tag) . '</' . $li_tag . '>';
}
}
} else {
if (is_string($val) != false and trim($val) != '') {
$has_items = true;
$retStr .= '<' . $li_tag . '>' . $key . ': ' . $val . '</' . $li_tag . '>';
}
}
} else {
if (!empty($val)) {
$has_items = true;
$retStr .= $this->array_to_ul($val, $ul_tag, $li_tag);
}
}
}
}
$retStr .= '</' . $ul_tag . '>';
if ($has_items) {
return $retStr;
}
}