Лучшим решением было бы использование возможностей полнотекстового поиска MySq'ls , поскольку результаты возвращаются ранжированными, и это, вероятно, проще и надежнее, чем пытаться написать его самостоятельно.Вы также можете посмотреть на другие поисковые системы, такие как Sphinx.
Однако, если вы хотите продолжить свой метод, вы должны сделать что-то вроде:
$results = array();
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$count = substr_count($row['content'], "$searchparam");
//add the details you want to the array. You could also just add count
// to $row and add $row to $results
$results[] = array(
'count' => $count,
'resultid' => $row['id']
);
}
//custom sort function that uses the count to order results
function cmp($a, $b){
if ($a['count'] == $b['count]) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
//sort the array using the sort function
usort($results, 'cmp');