我有这样一个数组:
$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。
当我在数组中循环时,我可以得到最低的价格结果,但不能从数组中得到其他值。
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
我怎么能创造这个呢?
发布于 2022-07-31 21:22:28
一种选择是记住以最低价格计算的值,然后对所有这些值进行迭代:
$min = null;
foreach ($flight as $value) {
if ($min === null || $value['price'] < $min) {
$minValue = $value;
$min = $value['price'];
}
}
echo $minValue["home"].' '.$minValue["away"].' '.$minValue["price"];发布于 2022-07-31 21:19:57
把所有的东西都储存起来,而不仅仅是价格。
$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);发布于 2022-07-31 21:45:02
按字段对数组进行排序(ASC顺序),您将在数组的头部找到最低的元素:
usort($flights, fn($a, $b) => $a['price'] <=> $b['price'])
print_r($flights[0]);https://stackoverflow.com/questions/73186915
复制相似问题