首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从数组中获得包含其他值的最低价格?

如何从数组中获得包含其他值的最低价格?
EN

Stack Overflow用户
提问于 2022-07-31 21:08:59
回答 5查看 64关注 0票数 0

我有这样一个数组:

代码语言:javascript
复制
$flight = array (
    array (
        "home" => "AMS",
        "away" => "LHR",    
        "price" => "270"
    ),
    array (
        "home" => "AMS",
        "away" => "LGW",    
        "price" => "216"
    ),   
    array (
        "home" => "EIN",
        "away" => "LHR",    
        "price" => "427"
    ) 
);

我要最便宜的航班的价值。结果应该是: AMS LGW 216。

当我在数组中循环时,我可以得到最低的价格结果,但不能从数组中得到其他值。

代码语言:javascript
复制
foreach ($flight as $value) { 
    echo $value["home"].' '.$value["away"].' '.$value["price"].'<br>';
    
    $lowest = array_column($flight, "price");
    $min = min($lowest);
}

echo $min;

现在的结果只有216,但我想要的是AMS LGW 216

我怎么能创造这个呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2022-07-31 21:22:28

一种选择是记住以最低价格计算的值,然后对所有这些值进行迭代:

代码语言:javascript
复制
$min = null;

foreach ($flight as $value) { 
    
    if ($min === null || $value['price'] < $min) {
        $minValue = $value;
        $min = $value['price'];
    }
}

echo $minValue["home"].' '.$minValue["away"].' '.$minValue["price"];
票数 0
EN

Stack Overflow用户

发布于 2022-07-31 21:19:57

把所有的东西都储存起来,而不仅仅是价格。

代码语言:javascript
复制
$min = ["price" => 1e10];
foreach ($flight as $value) {
    echo $value["home"] . ' ' . $value["away"] . ' ' . $value["price"] . '<br>';

    if ($value['price'] < $min['price']) {
        $min = $value;
    }
}
print_r($min);
票数 0
EN

Stack Overflow用户

发布于 2022-07-31 21:45:02

按字段对数组进行排序(ASC顺序),您将在数组的头部找到最低的元素:

代码语言:javascript
复制
usort($flights, fn($a, $b) => $a['price'] <=> $b['price'])

print_r($flights[0]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73186915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档