一、计算经纬度
function getDistance($lng1, $lat1, $lng2, $lat2)
{
if (empty($lng1) || empty($lat1) || empty($lng2) || empty($lat2)) return '';
$radLat1 = deg2rad($lat1);//deg2rad()函数将角度转换为弧度
$radLat2 = deg2rad($lat2);
$radLng1 = deg2rad($lng1);
$radLng2 = deg2rad($lng2);
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137;
if ($s < 1) {
$s = intval($s * 1000);
$s .= 'm';
} else {
$s = intval($s * 10) / 10;
$s .= 'km';
}
return $s;
}
二、手机号隐藏中间四位
function hide_phone($str)
{
if (empty($str)) return '';
return substr_replace($str, '****', 3, 4);
}
三、超过一万变成w
function priceToW($price)
{
if ($price < 10000) return $price;
return number_format($price / 10000, 2) . 'w';
}
四、根据某个字段排序
/**
* 二维数组根据某个字段排序
* @param array $array 要排序的数组
* @param string $keys 要排序的键字段
* @param string $sort 排序类型 SORT_ASC SORT_DESC
* @return array 排序后的数组
*/
function arraySort($array, $keys, $sort = SORT_DESC)
{
$keysValue = [];
foreach ($array as $k => $v) {
$keysValue[$k] = $v[$keys];
}
array_multisort($keysValue, $sort, $array);
return $array;
}
五、保留两位小数
function sprintfPrice($price)
{
if (empty($price)) return $price;
return str_replace('.00', '', sprintf("%.2f", $price));
}
|