public function search(string $str='',int $son = 5) { $words = $this->m_explode($str); $query = "SELECT * FROM `music` WHERE "; $like = " name LIKE '%$str%' OR "; foreach($words as $word) { $like .=" name LIKE '%$word%' OR "; } $order = " ORDER BY name LIKE '%$str%' DESC "; $query .= rtrim($like,' OR').$order; $result = $this->runQuery($query); if(!$result) return false; if($this->row_exists($result)) { $userInput = $str; $list = []; while($q = $result->fetch_assoc()) { $list[] = $q['name']; } usort($list, function ($a, $b) use ($userInput) { similar_text($userInput, $a, $percentA); similar_text($userInput, $b, $percentB); return $percentA === $percentB ? 0 : ($percentA > $percentB ? -1 : 1); } ); return $list; } return false; }