PHP基础操作

多维数组去重

/**
 * 多维数组去重
 * @param  array  $arr [description]
 * @return [type]      [description]
 */

static function super_unique($array, $recursion = false){
    // 序列化数组元素,去除重复
    $result = array_map('unserialize', array_unique(array_map('serialize', $array)));
    // 递归调用
    if ($recursion) {
        foreach ($result as $key => $value) {
            if (is_array($value)) {
                $result[ $key ] = super_unique($value);
            }
        }
    }
    return $result;
}

 二维数组的快速排序

/**
 * 二维数组的快速排序
 * @param Array $data 二维数组
 * @param string $field 所要排序的字段
 * @param string $order 正序或倒序
 * @param boolean $isabs 是否比较绝对值
 */
function quickSort($data,$field,$order="asc",$isabs=false) {
    $len=count($data);
    if($len <= 1){
        return $data;
    }
    $item = $data[0][$field];
    $left = array();
    $right = array();
    $abs=$isabs==false?"":"abs";
    switch($order){
        case 'desc'://倒叙
            for($i = 1;$i < $len; $i++){
                if(self::isabs($data[$i][$field],$isabs) > self::isabs($item,$isabs)){
                    $left[] =$data[$i];
                }else{
                    $right[]=$data[$i];
                }
            }
            break;
        case 'asc':
            for($i = 1;$i < $len; $i++){
                if(self::isabs($data[$i][$field],$isabs) < self::isabs($item,$isabs)){
                    $left[] =$data[$i];
                }else{
                    $right[]=$data[$i];
                }
            }
            break;
        default:
            break;
    }
    $left = self::quickSort($left,$field,$order);
    $right = self::quickSort($right,$field,$order);
    $result = array_merge($left,array($data[0]),$right);
    return $result;
}

只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)

/* @param  [string] $user_name 字符串
 * @param  [int] $head      左侧保留位数
 * @param  [int] $foot      右侧保留位数
 * @return string 格式化后的姓名
 */
static function substr_cut($user_name,$head,$foot){
    $strlen = mb_strlen($user_name, 'utf-8');
    $firstStr = mb_substr($user_name, 0, $head, 'utf-8');
    $lastStr = mb_substr($user_name, -$foot, $foot, 'utf-8');
    return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - ($head+$foot)) . $lastStr;
}

将一个二维数组,以其中一列为KEY,一列为VALUE,返回一个一维数组

/**
 * @param array $array
 * @param null $column_key
 * @param $index_key
 * @throws \Exception
 * @return array
 */
public static function arrayColumn($array, $column_key, $index_key = null)
{
    if (!is_array($array) && !($array instanceof \ArrayAccess))
        throw new \Exception('Argument 1 passed to Tool_ArrayGroupBy::::arrayColumn() must be of the type array');
    if (function_exists('array_column ')) {
        return array_column($array, $column_key, $index_key);
    }
    $result = [];
    foreach ($array as $arr) {
        if (!is_array($arr) && !($arr instanceof \ArrayAccess)) 
        continue;
        if (is_null($column_key)) {
            $value = $arr;
        } else {
            $value = $arr[$column_key];
        }
        if (!is_null($index_key)) {
            $key = $arr[$index_key];
            $result[$key] = $value;
        } else {
            $result[] = $value;
        }
    }
    return $result;
}

无限级分类

public function getTree($list, $pid =0)
{
$tree = [];
if (!empty($list)) {
    $newList = [];
    foreach ($list as $k => $v) {
        $newList[$v['news_category_id']] = $v;
    }
    foreach ($newList as $value ) {
        if ($pid == $value['news_category_pid']) {
            $tree[] = &$newList[$value['news_category_id']];
        } elseif (isset($newList[$value['news_category_pid']]))
        {
            $newList[$value['news_category_pid']]['items'][] = &$newList[$value['news_category_id']];
        }
    }
    // 如果顶级分类下没有一个下级,删除此分类
    foreach ($tree as $k=>$v)
    {
        if(!isset($v['items']) && ($pid<1))
            unset($tree[$k]);
    }
}
return $tree;
}

        ==========结构如下=============

Array

(

[0] => Array

    (

        [news_category_id] => 2

        [news_category_name] => 裤子

        [news_category_pid] => 0

        [items] => Array

            (

                [0] => Array

                    (

                        [news_category_id] => 37

                        [news_category_name] => 优衣库裤子

                        [news_category_pid] => 2

                    )

                [1] => Array

                    (

                        [news_category_id] => 4

                        [news_category_name] => 骆驼裤子

                        [news_category_pid] => 2

                    )

                [2] => Array

                    (

                        [news_category_id] => 40

                        [news_category_name] => 裤子下级

                        [news_category_pid] => 2

                    )

            )

    )

[1] => Array

    (

        [news_category_id] => 1

        [news_category_name] => 鞋子

        [news_category_pid] => 0

        [items] => Array

            (

                [0] => Array

                    (

                        [news_category_id] => 38

                        [news_category_name] => 运动鞋子

                        [news_category_pid] => 1

                    )

                [1] => Array

                    (

                        [news_category_id] => 55

                        [news_category_name] => 鞋子

                        [news_category_pid] => 1

                    )

                [2] => Array

                    (

                        [news_category_id] => 3

                        [news_category_name] => 耐克鞋

                        [news_category_pid] => 1

                    )

                [3] => Array

                    (

                        [news_category_id] => 47

                        [news_category_name] => 阿迪达斯

                        [news_category_pid] => 1

                    )

                [4] => Array

                    (

                        [news_category_id] => 52

                        [news_category_name] => 鞋子鞋子

                        [news_category_pid] => 1

                    )

            )

    )

[2] => Array

    (

        [news_category_id] => 45

        [news_category_name] => 手机

        [news_category_pid] => 0

        [items] => Array

            (

                [0] => Array

                    (

                        [news_category_id] => 49

                        [news_category_name] => 锤子

                        [news_category_pid] => 45

                    )

                [1] => Array

                    (

                        [news_category_id] => 48

                        [news_category_name] => OPPO

                        [news_category_pid] => 45

                    )

                [2] => Array

                    (

                        [news_category_id] => 51

                        [news_category_name] => 苹果xr

                        [news_category_pid] => 45

                    )

                [3] => Array

                    (

                        [news_category_id] => 50

                        [news_category_name] => 一加手机

                        [news_category_pid] => 45

                    )

                [4] => Array

                    (

                        [news_category_id] => 46

                        [news_category_name] => 魅族手机

                        [news_category_pid] => 45

                    )

            )

    )

)

随机密码生成

function randomPassword(size)
{
var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','m','n','p','Q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','8','9');//数组
seedlength = seed.length;//数组长度
var createPassword = '';
for (i=0;i<size;i++) {
    j = Math.floor(Math.random()*seedlength);
    createPassword += seed[j];
}
return createPassword;
}
//默认赋值随机密码
$("input[name='news_partner_password']").val(randomPassword(20));
//点击生成随机密码
$("#en_password").on('click', function () {
$("input[name='news_partner_password']").val(randomPassword(20));
});

jquery过滤字符串中所有html标签

function filterHTMLTag(str) {
    var msg = str.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag
    msg = msg.replace(/[|]*\n/, ''); //去除行尾空格
    msg = msg.replace(/&nbsp;/ig, ''); //去掉npsp
    return msg;
}

保留两位小数

$money = 2893.73875;
$b = sprintf("%.2f", $money / 100);
echo $b;

随机订单号

$order_id_main = date('YmdHis') . rand(10000000,99999999);
$order_id_len = strlen($order_id_main);
$order_id_sum = 0;
for($i=0; $i<$order_id_len; $i++){
    $order_id_sum += (int)(substr($order_id_main,$i,1));
}
$osn = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);
echo $osn;

兑换码随机数 $num位数

 private function code($num)
    {
        $chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
        $code = "";
        for ( $i = 0; $i < $num; $i++ )
        {
            $random=mt_rand(0,strlen($chars)-1);
            $code .= $chars[$random];
        }
        return $code;
    } 

以上内容均为日常搜索总结出来的,如有侵权请及时告知

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值