多维数组去重
/**
* 多维数组去重
* @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(/ /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;
}
以上内容均为日常搜索总结出来的,如有侵权请及时告知