duandi4815 2018-05-15 12:19
浏览 47
已采纳

获取具有不同数组的字段的最低值

I have created the following array in PHP with help of the Google Distance Matrix API.

Now I need to compare the [distance] field, get the lowest value and save the key of the array in a variable. How do I do this? I looked at min() but this doesn't seem to work with multiple arrays.

Array
(
[utrecht_cs] => Array
    (
        [name] => utrecht_cs
        [address] => 3511 AX Utrecht, Netherlands
        [distance] => 95
    )

[groningen_cs] => Array
    (
        [name] => groningen_cs
        [address] => 9726 AC Groningen, Netherlands
        [distance] => 102.47
    )

[zwolle_cs] => Array
    (
        [name] => zwolle_cs
        [address] => 8011 CW Zwolle, Netherlands
        [distance] => 2.54
    )

)
  • 写回答

3条回答 默认 最新

  • dongruan6001 2018-05-15 12:25
    关注

    You could use uasort() to sort your array. Then, you could get the first key using key().

    $array = array(
        'utrecht_cs' => array(
            'name' => 'utrecht_cs',
            'address' => '3511 AX Utrecht, Netherlands',
            'distance' => 95
        ),
        'groningen_cs' => array(
            'name' => 'groningen_cs',
            'address' => '9726 AC Groningen, Netherlands',
            'distance' => '102.47'
        ),
        'zwolle_cs' => array(
            'name' => 'zwolle_cs',
            'address' => '8011 CW Zwolle, Netherlands',
            'distance' => '2.54'
        )
    );
    
    uasort($array, function($a, $b) { return $a['distance'] <=> $b['distance']; });
    $first_key = key($array);
    

    Output:

    zwolle_cs
    

    You can also use (for PHP version before 7.0):

    uasort($array, function($a, $b) { 
       return $a['distance'] < $b['distance'] ? -1 : 1; 
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号