我想通过itemOrderList(在示例代码中的变量中可用)对myobject列表( - "traefik.enable=true"
- "traefik.http.routers.my-app-router.tls=true"
- "traefik.http.routers.my-app-router.rule=PathPrefix(`/my-app`)"
- "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^(https|http)://([a-zA-Z0-9_.-]+)/([a-zA-Z0-9_.-]+)$$"
- "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=$${1}://$${2}/$${3}/"
- "traefik.http.routers.my-app-router.middlewares=test-redirectregex@docker,path-strip@file"
)进行排序,例如,不带提供程序的myobject,带Gmail提供程序的myobject,带提供程序的myobject Hotmail提供商,等等。
$myobjectList
我应该尊重的订单清单是:
private function reOrderByProvider(
myobject $actualObject,myobject $nextObject
): int {
$actual = array_search($actualObject->getProvider(),$this->itemOrderList);
$next = array_search($nextObject->getProvider(),$this->itemOrderList);
if ($actual === $next) {
return 0;
}
return (($next === false) || ($actual < $next)) ? -1 : +1;
}
我与Gmail提供程序,Hotmail提供程序有多个对象,并且列表中未列出某些对象,这些未列出的提供程序必须在排序的末尾。
为此,我使用此PHP函数$this->itemOrderList = [null,'gmail','hotmail'];