foreach($domainCheckResults as $domainCheckResult)
{
switch($domainCheckResult->status)
{
case Transip_DomainService::AVAILABILITY_INYOURACCOUNT:
$result .= "<p style='color:red;'>".$domainCheckResult->domainName."</p>";
break;
case Transip_DomainService::AVAILABILITY_UNAVAILABLE:
$result .= "<p style='color:red;'>".$domainCheckResult->domainName."</p>";
break;
case Transip_DomainService::AVAILABILITY_FREE:
$result .= "<p style='color:#1aff1a;'>".$domainCheckResult->domainName." "."<a href='ticket.php'><img src='img/next.png' alt='house' width='20' height='20' align='right' title='domein aanvragen?'></a>"."</p>";
break;
case Transip_DomainService::AVAILABILITY_NOTFREE:
$result .= "<p style='color:#ff9933;'>".$domainCheckResult->domainName." "."<a href='contactform.php'><img src='img/65.png' alt='house' width='20' height='20' align='right' title='domein laten verhuizen?'></a>"."</p>";
break;
}
}
所以我有 4 个可能的域可用性结果。我有一个包含 20 个域的数组,当我得到结果时,我会在数组的排序中得到它们。但是我如何根据可用性进行排序,那么一次免费的全部在顶部,而一次由于任何原因不免费呢?我可以使用什么?我使用了 sort() 标签,但这无济于事。
您需要以某种方式定义顺序,然后usort()
适当地使用。
例如:
<?php
interface Transip_DomainService
{
public const AVAILABILITY_INYOURACCOUNT = 'inyouraccount';
public const AVAILABILITY_UNAVAILABLE = 'unavailable';
public const AVAILABILITY_FREE = 'free';
public const AVAILABILITY_NOTFREE = 'notfree';
}
// define required order
$priority = [
Transip_DomainService::AVAILABILITY_FREE => 0,
Transip_DomainService::AVAILABILITY_NOTFREE => 1,
Transip_DomainService::AVAILABILITY_UNAVAILABLE => 2,
Transip_DomainService::AVAILABILITY_INYOURACCOUNT => 3,
];
$domainCheckResults = [
(object) ['domainName' => 'a', 'status' => Transip_DomainService::AVAILABILITY_NOTFREE],
(object) ['domainName' => 'b', 'status' => Transip_DomainService::AVAILABILITY_UNAVAILABLE],
(object) ['domainName' => 'c', 'status' => Transip_DomainService::AVAILABILITY_INYOURACCOUNT],
(object) ['domainName' => 'd', 'status' => Transip_DomainService::AVAILABILITY_FREE],
(object) ['domainName' => 'e', 'status' => Transip_DomainService::AVAILABILITY_INYOURACCOUNT],
(object) ['domainName' => 'f', 'status' => Transip_DomainService::AVAILABILITY_FREE],
];
// apply sort using order lookup
usort($domainCheckResults, function ($a, $b) use ($priority) {
return $priority[$a->status] <=> $priority[$b->status];
});
print_r($domainCheckResults);
演示:https : //3v4l.org/j24rM
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句