Php 如何根据关键字的精确匹配重新排列数组元素
是否可以根据条件或关键字重新排列数组的元素? 例如,将两个查询的结果放入and数组,并根据关键字重新排列元素,将精确匹配放在相似匹配之前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
$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%”)
?确切地说,是以它开头的,以及其中存在匹配项的