【发布时间】:2018-05-09 16:24:08
【问题描述】:
我有一个数组:
$array_of_routes = ['users/', 'articles/more', 'users/get', 'homepage/'];
而且,例如我有一个字符串:
$route = "users/get/1";
所以我尝试通过使用 strpos 来找到它,但因为“users/”在 $array_of_routes 中是“users/get”的头部,所以我得到的是“users/”而不是“users/get”,这是这是有道理的,因为这就是我要求代码做的事情。
但是在尝试在字符串中查找子字符串时,有没有办法优先排序或使结果更准确?
注意:从数组中删除 'users/' 时,我会得到 'users/get'
这是我的代码:
foreach($array_of_routes as $uri){
if(strpos($current_uri, $uri) !== false)
return $uri;
}
感谢您的帮助!
【问题讨论】:
-
将匹配项按最长排序。
-
您的路线上是否可以选择尾随斜杠?
-
@MonkeyZeus 是的,可以选择!
-
@user2561521 我明白了,请查看我的回答。
标签: php arrays string sorting strpos