3 回答
TA贡献1815条经验 获得超13个赞
您可以使用array_search和min函数来获取该元素的最小值和键
$arr = [];
foreach($array as $x=>$x_value){
$arr[$x]= calculateDistance($start_location, $x_value);
}
echo 'Key :- '.array_search(min($arr),$arr);
echo '<br/>';
echo 'Value :-' .min($arr);
输出
Key :- New York
Value :- 132
TA贡献2041条经验 获得超4个赞
您可以定义一个较高的值,然后在循环中进行比较(如果当前值较低),则将其替换(如果不继续)。
$start_location = '34.048516, -118.260529';
$array = [
'New York' => '40.667646, -73.981803',
'Boston' => '42.356909, -71.072573',
'Miami' => '25.764618, -80.213501',
];
$lowest_x = 1000.0;
$lowest_y = 1000.0;
foreach ($array as $key => $value) {
if (preg_replace('/([0-9\.]+),(.+)/s', '$1', $value) < $lowest_x) {
$lowest_x = (float) trim(preg_replace('/([0-9\.]+),(.+)/s', '$1', $value));
}
if (preg_replace('/(.+),\s([0-9\.]+)/s', '$2', $value) < $lowest_y) {
$lowest_y = (float) trim(preg_replace('/([0-9\.]+),(.+)/s', '$2', $value));
}
}
var_dump($lowest_x);
var_dump($lowest_y);
我不确定,您想降低哪个值。您可以使用正则表达式来完成。
- 3 回答
- 0 关注
- 203 浏览
添加回答
举报