php数组,在foreach循环中使用相同的键存储多个值

php数组,在foreach循环中使用相同的键存储多个值,php,arrays,multidimensional-array,key,multiple-value,Php,Arrays,Multidimensional Array,Key,Multiple Value,我相信我正在努力实现的目标是直截了当的 在某些上下文中,如果给定距离小于给定接近距离($prox),下面的代码将城市名称($cityProx)推送到一维数组($validLocationCity)中 这似乎是一个不正确的和过于复杂的方式来做我想做的事情。因为我不知道需要迭代多少次,所以这个方法很糟糕。 我承认,我想我可能只是误解了我在上面的后一个例子中到底在做什么 如果有人能帮上忙,我会非常感激,我还想问你是否能找到一个快速的解决方案来展示我如何使用foreach或类似工具从你的解决方案中获取值

我相信我正在努力实现的目标是直截了当的

在某些上下文中,如果给定距离小于给定接近距离($prox),下面的代码将城市名称($cityProx)推送到一维数组($validLocationCity)中

这似乎是一个不正确的和过于复杂的方式来做我想做的事情。因为我不知道需要迭代多少次,所以这个方法很糟糕。 我承认,我想我可能只是误解了我在上面的后一个例子中到底在做什么

如果有人能帮上忙,我会非常感激,我还想问你是否能找到一个快速的解决方案来展示我如何使用foreach或类似工具从你的解决方案中获取值

希望你能找到我,

提前谢谢

使用城市名称作为键并应用asort()将实现此目的

$myarr = ['delhi' => 12,
          'kolkata' => 30,
          'hyderabad' => 4,
          'adilabad' => 1,
          'vizag' => 10];
asort($myarr);
然后,您可以使用

foreach($myarr as $key => $value) {
    echo "{$key} : {$value}";
}


你能给我们看一下你最终得到的数组吗?也许是时候进行快速排序了,或者使用城市名称作为键,使用距离作为值?@PruthviNag这是一个很好的建议。这帮了大忙,我对使用字符串作为键感到困惑,因为当我之前尝试时,我错误地打印了键并看到了数值。谢谢你的帮助,谢谢!
if($validLocationCitySortDistance[$actualDistance] != null) 
{
    $validLocationCitySortDistance[$actualDistance] [] = $cityProx;
}
else
{
     $validLocationCitySortDistance[$actualDistance] = $cityProx;
}
$myarr = ['delhi' => 12,
          'kolkata' => 30,
          'hyderabad' => 4,
          'adilabad' => 1,
          'vizag' => 10];
asort($myarr);
foreach($myarr as $key => $value) {
    echo "{$key} : {$value}";
}
array_walk($myarr, function($value, $key) {
   echo "{$key} : {$value} ";
});