【发布时间】:2019-09-07 01:54:16
【问题描述】:
我正在创建一个单词搜索,但我想根据搜索关键字的最高存在对它们进行排名。我怎么解决这个问题?
我正在尝试搜索数组 1 键是否存在于数组 2 长字符串中,然后按数组 2 中数组 1 的总出现次数对数组进行排序。
Blow 是我的代码
$str = "Hello World January Jude";
$arr1 = ["Hello World January Jude Lol Love","Hello Lol Loop","Love Life Jude","Crude Flash Hello"];
$str = explode(" ", $str);
echo sort_base($arr1, $str);
function sort_base($arr, $str){
$count = "";
foreach ($arr as $valuer){
foreach ($str as $value){
//$list[] = strpos($valuer, $value, 0);
$count .= strpos($valuer, $value, 0)."<hr/>";
}
}
$arr = trim($count," ");
echo $arr;
}
输入示例:
$array = ["Say Hello","Hello World"," Hello World Cup Final","Hello Cup","Hello","World"];
$str = "Hello World Cup";
愿望输出:
按顺序排列:
- 你好世界杯
- 最终的 Hello World
- 你好杯
- 你好
- 世界
- 打个招呼
【问题讨论】:
-
您好,您能否更详细地解释一下该函数的输出与您尝试获得的输出有何不同?预期和实际输出的示例会很有帮助。
-
好的,我会放在这里例如我正在搜索“Hello World Cup”,它是 $str 作为变量,我有数组,例如 $array = ["Say Hello" ,"Hello World","Hello World Cup Final","Hello Cup","Hello","World"];所以我想使用 $str = explode(" ",$array )。
-
例如 $array = ["Say Hello","Hello World","Hello World Cup Final","Hello Cup","Hello","World"]; $str = "你好世界杯";所以如果我这样调用函数 $arrays = sort_most_exists_asc($str, $array);它应该重新排序我的数组,所以我的数组应该排序到 Hello World Cup Final Hello World Hello Cup Hello World Say Hello
-
例如 $array = ["Say Hello","Hello World","Hello World Cup Final","Hello Cup","Hello","World"]; $str = "你好世界杯";所以如果我这样调用函数 $arrays = sort_most_exists_asc($str, $array);它应该重新排序我的数组,所以我的数组应该排序为 1. Hello World Cup 2. Final Hello World 3. Hello Cup 4. Hello 5. World 6. Say Hello Re Arranged 基于总索引数组并返回为数组以供使用.