function getHtmlAnnoyingAndLovely($aYes, $nYesToShow, $aNo, $nNoToShow) { $annoyingHtml = "<h2>Annoying things...</h2><ul>"; $aRandKeys = array_rand($aYes, $nYesToShow); foreach ($aRandKeys as $key) { $title = $aYes[$key]; if ($temp = getDataFromArray($title, array('title'))) { $title = $temp; } $url = '/' . urlencode($title); $annoyingHtml .= "<li><a href='{$url}'>{$title}</a></li>"; } $annoyingHtml .= "</ul>"; $annoyingHtml .= "<h2>Lovely things...</h2><ul>"; $aRandKeys = array_rand($aNo, $nNoToShow); foreach ($aRandKeys as $key) { $title = $aNo[$key]; if ($temp = getDataFromArray($title, array('title'))) { $title = $temp; } $url = '/' . urlencode($title); $annoyingHtml .= "<li><a href='{$url}'>{$title}</a></li>"; } $annoyingHtml .= "</ul>"; return $annoyingHtml; }
function getClosestString($needle, $haystack, $caseSensitive = false) { if (!$caseSensitive) { $needle = strtolower($needle); } $needleLength = strlen($needle); $closest = null; $minLevPercent = 100000; foreach ($haystack as $item) { $title = $item; if ($temp = getDataFromArray($item, array('title'))) { $title = $temp; } $titleToUse = $caseSensitive ? $title : strtolower($title); $dist = levenshtein($titleToUse, $needle); $percent = 100 * $dist / $needleLength; if ($percent < $minLevPercent) { $minLevPercent = $percent; $closest = $title; } } return $closest; }