如何从下面的阵列中获得最大距离?当我尝试print_r($ data)时,我得到以下输出:
Array
(
[0] => Array
(
[distance] => 1.7 km
[time] => 3 mins
[distance_value] => 1720
[time_value] => 192
)
[1] => Array
(
[distance] => 4.2 km
[time] => 10 mins
[distance_value] => 4207
[time_value] => 587
)
)
Run Code Online (Sandbox Code Playgroud)
我想回声4.2 km,因为它是我阵列中的最大距离.
foreach ($delivery as $key => $value) {
if($key==0) {
$mysource = $pickup;
} else {
$mysource = $delivery[$key-1];
}
$data[$key] = $this->GetDrivingDistance($mysource,$value);
if(!empty($data[$key])) {
$dist += max($data[$key]['distance']);
}
}
echo $dist; exit();
print_r($data); exit();
Run Code Online (Sandbox Code Playgroud)
您可以使用内置函数:
echo max(array_map('floatval',array_column($array, "distance")))." km";
Run Code Online (Sandbox Code Playgroud)
说明:
array_column - 将您的数组转换为单维array_map - 对字符串应用浮点运算.这很重要,因为您的字符串比较错误地比较了两个数字.当应用浮动函数时,您km将被删除,因此稍后追加.字符串示例:
11.7小于4.2,因为它比较第一个字符并按1,2,3排列...
输出:
4.2 km
Run Code Online (Sandbox Code Playgroud)
注意:
如果所有值都在km,这是合适的,如果是其他单位,则还需要解决方法!