【发布时间】:2016-08-03 17:37:48
【问题描述】:
嘿,我的网站上有一个新功能,您可以在其中 通过在搜索输入中输入一些关键字来搜索 ya 项目。当然,我正在使用 ajax,我需要一个新函数来对数组进行排序或排序,该数组保存数据库中与用户在输入字段中写入的关键字相关的项目信息。 当用户点击例如“m”时,它应该以这种方式显示。
array [["836","123","Malaga - Ocean","1"],
["834","123","Malaga City","1"],
["838","123","DayZ - Novo Turm #1","0"],
["839","123","DayZ - Novo Turm #2","0"],
["840","123","DayZ - Novo Turm #3","0"]]
但如果我搜索以字母“m”开头的内容,则结果中应首先显示“Malaga City”和“Malaga - Ocean”。
我在不止一张表中搜索我收集它的关键字。但是,如果我在每个不同的表结果中添加数组,那么每次图片表首先得到结果时都会得到这样的结果。
MySql:
$sql_picture = "SELECT * FROM pictures [...] ORDER BY name LIMIT 5";
$sql_videos = "SELECT * FROM videos [...] ORDER BY name LIMIT 5";
$sql_audio = "SELECT * FROM audio [...] ORDER BY name LIMIT 5";
$sql_documents = "SELECT * FROM documents [...] ORDER BY name LIMIT 5";
PHP:
$collectedDataName = array();
for($i = 0; $i < count($collectData); $i++){
$collectedDataName[$i] = $collectData[$i][2];
}
$collectData_lowercase = array_map('strtolower', $collectedDataName);
array_multisort($collectData_lowercase, SORT_ASC, SORT_STRING, $collectedDataName);
$returnData = array();
for($j = 0; $j < 5; $j++){
for($i = 0; $i < count($collectData); $i++){
if($collectData[$i][2] === $collectedDataName[$j]){
$returnData[$j] = $collectData[$i];
}
}
}
echo json_encode($returnData);
结果:
array [["838","123","DayZ - Novo Turm #1","0"],
["839","123","DayZ - Novo Turm #2","0"],
["840","123","DayZ - Novo Turm #3","0"],
["836","123","Malaga - Ocean","1"],
["834","123","Malaga City","1"]]
如何按与变量相关的字符串值对多维数组进行排序?
【问题讨论】:
-
为什么不能在 SQL 查询中执行 ORDER BY?