如何从下面的阵列中获得最大距离?当我尝试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 ) )
我想回声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();
Thamilan.. 6
您可以使用内置函数:
echo max(array_map('floatval',array_column($array, "distance")))." km";
说明:
array_column
- 将您的数组转换为单维
array_map
- 对字符串应用浮点运算.这很重要,因为您的字符串比较错误地比较了两个数字.当应用浮动函数时,您km
将被删除,因此稍后追加.
字符串示例:
11.7小于4.2,因为它比较第一个字符并按1,2,3排列...
输出:
4.2 km
注意:
如果所有值都在km
,这是合适的,如果是其他单位,则还需要解决方法!
您可以使用内置函数:
echo max(array_map('floatval',array_column($array, "distance")))." km";
说明:
array_column
- 将您的数组转换为单维
array_map
- 对字符串应用浮点运算.这很重要,因为您的字符串比较错误地比较了两个数字.当应用浮动函数时,您km
将被删除,因此稍后追加.
字符串示例:
11.7小于4.2,因为它比较第一个字符并按1,2,3排列...
输出:
4.2 km
注意:
如果所有值都在km
,这是合适的,如果是其他单位,则还需要解决方法!