php 处理数组

Posted 大郎,起来喝药了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 处理数组相关的知识,希望对你有一定的参考价值。

一、计算经纬度

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));
}

以上是关于php 处理数组的主要内容,如果未能解决你的问题,请参考以下文章

超级有用的9个PHP代码片段

PHP必用代码片段

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

PHP代码-psysh调试代码片段工具

超实用的php代码片段