我相信我想要完成的是直截了当的。
在某些情况下,如果给定距离小于给定接近距离($prox),则下面的代码将城市名称($cityProx)简单地推入一维数组($validLocationCity)
if($actualDistance <= $prox)
{
array_push($validLocationCity,$cityProx);
}
所以这很好。但现在我希望根据距离对这一系列城市进行排序。
我的理论实现这一点的一个简单方法是将距离作为键存储在数组中,允许我使用 ksort(),这将允许我循环遍历城市,稍后再靠近。
if($actualDistance <= $prox)
{
$validLocationCitySortDistance[$actualDistance] = $cityProx;
}
以上是我第一次尝试实现这一点,但是,当然,任何具有相同距离的城市都会覆盖为该距离/键存储的先前值。
我如何实现这一点,以便如果键相同,即距离相等,新值(城市名称)将简单地添加/附加到该键。还假设在超过 1 种情况下距离相等。
// 结束问题
//--------------------------------->>
如果使用给定的键,我尝试添加一个新数组作为值
if($validLocationCitySortDistance[$actualDistance] != null)
{
$validLocationCitySortDistance[$actualDistance] [] = $cityProx;
}
else
{
$validLocationCitySortDistance[$actualDistance] = $cityProx;
}
这似乎是一种不正确且过于复杂的方式来做我想做的事情。由于我不知道我需要迭代多少次,所以这种方法很糟糕。我承认,我想我可能只是误解了我在上面的后一个示例中到底在做什么。
如果有人可以帮助它真的很感激,我还想问你是否看到一个快速的解决方案来展示我如何使用 foreach 或类似方法从你的解决方案中获取值。
希望你能得到我,
提前谢谢!