Php 如何根据关键字的精确匹配重新排列数组元素

Php 如何根据关键字的精确匹配重新排列数组元素,php,mysql,Php,Mysql,是否可以根据条件或关键字重新排列数组的元素? 例如,将两个查询的结果放入and数组,并根据关键字重新排列元素,将精确匹配放在相似匹配之前 $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

是否可以根据条件或关键字重新排列数组的元素? 例如,将两个查询的结果放入and数组,并根据关键字重新排列元素,将精确匹配放在相似匹配之前

$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

为什么要三次
(标题类似“$key”)或(标题类似“%$key”)或(标题类似“%$key%”)
?确切地说,是以它开头的,以及其中存在匹配项的