как переставить элементы массива в соответствии с точным совпадением ключевого слова

#php #mysql

#php #mysql

Вопрос:

возможно ли переставить элементы массива в соответствии с критерием или ключевым словом? например, помещаем результаты двух запросов в массив и и переставляем их элементы в соответствии с ключевым словом, ставя точные совпадения первыми перед аналогичными совпадениями.

 $arr = array();

$sql = mysql_query("SELECT * FROM table WHERE (title LIKE '$key') OR (title LIKE '%$key') OR (title LIKE '%$key%') ORDER BY CASE WHEN title LIKE  '$key' THEN 0 ELSE 1 END DESC") or die (mysql_error());
while($data = mysql_fetch_array($sql)){
   $li = $data['title'];
   $arr[] = $li;
}

$sql2 = mysql_query("SELECT * FROM table WHERE (title LIKE '$key') OR (title LIKE '%$key') OR (title LIKE '%$key%') ORDER BY CASE WHEN title LIKE  '$key' THEN 0 ELSE 1 END DESC") or die (mysql_error());
while($data = mysql_fetch_array($sql2)){
   $li = $data['title'];
   $arr[] = $li;
}

// rearrange elements according to $key
  

Комментарии:

1. почему 3 раза (title LIKE '$key') OR (title LIKE '%$key') OR (title LIKE '%$key%') ?

2. для точных элементов, тех, которые начинаются с него, и тех, в которых есть совпадение