亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

php基本函數匯總

2024-04-25 20:38:42
字體:
來源:轉載
供稿:網友

1.統計數組元素個數

$arr = array(

'1011,1003,1008,1001,1000,1004,1012',

'1009',

'1011,1003,1111'

);

$result = array();

foreach ($arr as $str) {

$str_arr = explode(',', $str);

foreach ($str_arr as $v) {

// $result[$v] = isset($result[$v]) ? $result[$v] : 0;

// $result[$v] = $result[$v] + 1;

$result[$v] = isset($result[$v]) ? $result[$v]+1 : 1;

}

}

print_r($result);

//Array

(

[1011] => 2

[1003] => 2

[1008] => 1

[1001] => 1

[1000] => 1

[1004] => 1

[1012] => 1

[1009] => 1

[1111] => 1

)

2. 循環刪除目錄

function cleanup_directory($dir) {

foreach (new DirectoryIterator($dir) as $file) {

if ($file->isDir()) {

if (! $file->isDot()) {

cleanup_directory($file->getPathname());

}

} else {

unlink($file->getPathname());

}

}

rmdir($dir);

}

3.無限極分類生成樹

function generateTree($items){

$tree = array();

foreach($items as $item){

if(isset($items[$item['pid']])){

$items[$item['pid']]['son'][] = &$items[$item['id']];

}else{

$tree[] = &$items[$item['id']];

}

}

return $tree;

}

function generateTree2($items){

foreach($items as $item)

$items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];

return isset($items[0]['son']) ? $items[0]['son'] : array();

}

$items = array(

1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),

2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),

3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),

4 => array('id' => 4, 'pid' => 3, 'name' => '長豐縣'),

5 => array('id' => 5, 'pid' => 1, 'name' => '安慶市'),

);

print_r(generateTree($items));

/**

* 如何取數據格式化的樹形數據

*/

$tree = generateTree($items);

function getTreeData($tree){

foreach($tree as $t){

echo $t['name'].'<br>';

if(isset($t['son'])){

getTreeData($t['son']);

}

}

}

4.數組排序 a - b 是數字數組寫法 遇到字符串的時候就要

12

var test = ['ab', 'ac', 'bd', 'bc'];

test.sort(function(a, b) {

if(a < b) {

return -1;

}

if(a > b) {

return 1;

}

return 0;

});

5.array_reduce

$raw = [1,2,3,4,5,];

// array_reduce 的第三個參數是 $result 的初始值

array_reduce($raw, function($result, $value) {

$result[$value] = $value;

return $result;

}, []);

// [1 => 1, 2 => 2, ... 5 => 5]

6.array_map 閉包中只接受一個或者多個參數,閉包的參數數量和 array_map 本身的參數數量必須一致

$input = ['key' => 'value'];

array_map(function($key, $value) {

echo $key . $value;

}, array_keys($input), $input)

// 'keyvalue'

$double = function($item) {

return 2 * $item;

}

$result = array_map($double, [1,2,3]);

// 2 4 6

7.繁殖兔子

$month = 12;

$fab = array();

$fab[0] = 1;

$fab[1] = 1;

for ($i = 2; $i < $month; $i++)

{

$fab[$i] = $fab[$i - 1] + $fab[$i - 2];

}

for ($i = 0; $i < $month; $i++)

{

echo sprintf("第{%d}個月兔子為:{%d}",$i, $fab[$i])."<br/>";

}

8 .datetime

function getCurMonthFirstDay($date)

{

return date('Y-m-01', strtotime($date));

}

getCurMonthLastDay('2015-07-23')

function getCurMonthLastDay($date)

{

return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' +1 month -1 day'));

}

9.加密解密

function encrypt($data, $key)

{

$key = md5($key);

$x = 0;

$len = strlen($data);

$l = strlen($key);

$char = '';

for ($i = 0; $i < $len; $i++)

{

if ($x == $l)

{

$x = 0;

}

$char .= $key{$x};

$x++;

}

$str = '';

for ($i = 0; $i < $len; $i++)

{

$str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);

}

return base64_encode($str);

}

function decrypt($data, $key)

{

$key = md5($key);

$x = 0;

$data = base64_decode($data);

$len = strlen($data);

$l = strlen($key);

$char = '';

for ($i = 0; $i < $len; $i++)

{

if ($x == $l)

{

$x = 0;

}

$char .= substr($key, $x, 1);

$x++;

}

$str = '';

for ($i = 0; $i < $len; $i++)

{

if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))

{

$str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));

}

else

{

$str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));

}

}

return $str;

}

10 . 多維數組降級

function array_flatten($arr) {

$result = [];

array_walk_recursive($arr, function($value) use (&$result) {

$result[] = $value;

});

return $result;

}

print_r(array_flatten([1,[2,3],[4,5]]));// [1,[2,3],[4,5]] => [1,2,3,4,5]

// var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

var test = [1,2,3,[4,5,6],[7,8]];

[].concat.apply([], test); // [1,2,3,4,5,6,7,8] 對于 test 數組中的每一個 value, 將它 concat 到空數組 [] 中去,而因為 concat 是 Array 的 prototype,所以我們用一個空 array 作載體

var test1 = [1,2,[3,[4,[5]]]];

function flatten(arr) {

return arr.reduce(function(pre, cur) {

if(Array.isArray(cur)) {

return flatten(pre.concat(cur));

}

return pre.concat(cur);

}, []);

}

// [1,2,3,4,5]

json_encode中文

function json_encode_wrapper ($result)

{

if(defined('JSON_UNESCAPED_UNICODE')){

return json_encode($result,JSON_UNESCAPED_UNICODE|JSON_NUMERIC_CHECK);

}else {

return preg_replace(

array("#///u([0-9a-f][0-9a-f][0-9a-f][0-9a-f])#ie", "//"(/d+)/"/",),

array("iconv('UCS-2', 'UTF-8', pack('H4', '//1'))", "//1"),

json_encode($result)

);

}

}

12.二維數組去重

$arr = array(

array('id'=>'2','title'=>'...','ding'=>'1','jing'=>'1','time'=>'...','url'=>'...','dj'=>'...'),

array('id'=>'2','title'=>'...','ding'=>'1','jing'=>'1','time'=>'...','url'=>'...','dj'=>'...')

);

function about_unique($arr=array()){

/*將該種二維數組看成一維數組,則 該一維數組的value值有相同的則干掉只留一個,并將該一維 數組用重排后的索引數組返回,而返回的一維數組中的每個元素都是 原始key值形成的關聯數組 */

$keys =array();

$temp = array();

foreach($arr[0] as $k=>$arrays) {

/*數組記錄下關聯數組的key值*/

$keys[] = $k;

}

//return $keys; /*降維*/

foreach($arr as $k=>$v) {

$v = join(",",$v); //降維

$temp[] = $v;

}

$temp = array_unique($temp); //去掉重復的內容

foreach ($temp as $k => $v){

/*再將拆開的數組按索引數組重新組裝*/

$temp[$k] = explode(",",$v);

}

//return $temp; /*再將拆開的數組按關聯數組key值重新組裝*/

foreach($temp as $k=>$v) {

foreach($v as $kkk=>$ck) {

$data[$k][$keys[$kkk]] = $temp[$k][$kkk];

}

}

return $data;

}

13.格式化字節大小

/**

* 格式化字節大小

* @param number $size 字節數

* @param string $delimiter 數字和單位分隔符

* @return string 格式化后的帶單位的大小

* @author

*/

function format_bytes($size, $delimiter = '') {

$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');

for ($i = 0; $size >= 1024 && $i < 6; $i++) $size /= 1024;

return round($size, 2) . $delimiter . $units[$i];

}

14.3分鐘前

/**

* 將指定時間戳轉換為截止當前的xx時間前的格式 例如 return '3分鐘前''

* @param string|int $timestamp unix時間戳

* @return string

*/

function time_ago($timestamp) {

$etime = time() - $timestamp;

if ($etime < 1) return '剛剛';

$interval = array (

12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d', $timestamp).')',

30 * 24 * 60 * 60 => '個月前 ('.date('m-d', $timestamp).')',

7 * 24 * 60 * 60 => '周前 ('.date('m-d', $timestamp).')',

24 * 60 * 60 => '天前',

60 * 60 => '小時前',

60 => '分鐘前',

1 => '秒前'

);

foreach ($interval as $secs => $str) {

$d = $etime / $secs;

if ($d >= 1) {

$r = round($d);

return $r . $str;

}

};

}

15.身份證號

/**

* 判斷參數字符串是否為天朝身份證號

* @param $id 需要被判斷的字符串或數字

* @return mixed false 或 array[有內容的array boolean為真]

*/

function is_citizen_id($id) {

//長度效驗 18位身份證中的X為大寫

$id = strtoupper($id);

if(!(preg_match('/^/d{17}(/d|X)$/',$id) || preg_match('/^/d{15}$/',$id))) {

return false;

}

//15位老號碼轉換為18位 并轉換成字符串

$Wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);

$Ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

$cardNoSum = 0;

if(strlen($id)==16) {

$id = substr(0, 6).'19'.substr(6, 9);

for($i = 0; $i < 17; $i++) {

$cardNoSum += substr($id,$i,1) * $Wi[$i];

}

$seq = $cardNoSum % 11;

$id = $id.$Ai[$seq];

}

//效驗18位身份證最后一位字符的合法性

$cardNoSum = 0;

$id17 = substr($id,0,17);

$lastString = substr($id,17,1);

for($i = 0; $i < 17; $i++) {

$cardNoSum += substr($id,$i,1) * $Wi[$i];

}

$seq = $cardNoSum % 11;

$realString = $Ai[$seq];

if($lastString!=$realString) {return false;}

//地域效驗

$oCity = array(11=>"北京",12=>"天津",13=>"河北",14=>"山西",15=>"內蒙古",21=>"遼寧",22=>"吉林",23=>"黑龍江",31=>"上海",32=>"江蘇",33=>"浙江",34=>"安徽",35=>"福建",36=>"江西",37=>"山東",41=>"河南",42=>"湖北",43=>"湖南",44=>"廣東",45=>"廣西",46=>"海南",50=>"重慶",51=>"四川",52=>"貴州",53=>"云南",54=>"西藏",61=>"陜西",62=>"甘肅",63=>"青海",64=>"寧夏",65=>"新疆",71=>"臺灣",81=>"香港",82=>"澳門",91=>"國外");

$City = substr($id, 0, 2);

$BirthYear = substr($id, 6, 4);

$BirthMonth = substr($id, 10, 2);

$BirthDay = substr($id, 12, 2);

$Sex = substr($id, 16,1) % 2 ;//男1 女0

//$Sexcn = $Sex?'男':'女';

//地域驗證

if(is_null($oCity[$City])) {return false;}

//出生日期效驗

if($BirthYear>2078 || $BirthYear<1900) {return false;}

$RealDate = strtotime($BirthYear.'-'.$BirthMonth.'-'.$BirthDay);

if(date('Y',$RealDate)!=$BirthYear || date('m',$RealDate)!=$BirthMonth || date('d',$RealDate)!=$BirthDay) {

return false;

}

return array('id'=>$id,'location'=>$oCity[$City],'Y'=>$BirthYear,'m'=>$BirthMonth,'d'=>$BirthDay,'sex'=>$Sex);

}

16.獲取二維數組中某個key的集合

$user = array( 0 => array( 'id' => 1, 'name' => '張三', 'email' => 'zhangsan@sina.com', ), 1 => array( 'id' => 2, 'name' => '李四', 'email' => 'lisi@163.com', ), 2 => array( 'id' => 5, 'name' => '王五', 'email' => '10000@qq.com', ), ...... );

$ids = array(); $ids = array_map('array_shift', $user);

$ids = array_column($user, 'id');//php5.5

$names = array(); $names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$w["name"];return $v;'));

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线网址| 欧美在线观看日本一区| 欧美一区二区三区……| 亚洲一区亚洲二区| 欧美电影免费观看高清| 久久久精品国产| 亚洲电影免费观看| 亚洲人成网站免费播放| 国产成人精品电影久久久| 日韩成人中文字幕在线观看| 最近2019中文字幕在线高清| 亚洲一区二区免费在线| 全亚洲最色的网站在线观看| 成人国产精品一区| 欧美亚洲视频在线观看| 久久精品国产久精国产一老狼| 欧美中文在线免费| 久久精品99国产精品酒店日本| 亚洲丁香婷深爱综合| 国产成人精品电影久久久| 久久精品影视伊人网| 亚洲国产精品久久精品怡红院| 在线亚洲午夜片av大片| 亚洲爱爱爱爱爱| 国产精品久久久久一区二区| 91免费欧美精品| 日本久久久久久久久| 亚洲精品久久久一区二区三区| 538国产精品视频一区二区| 中日韩美女免费视频网站在线观看| 91极品女神在线| 揄拍成人国产精品视频| 欧美激情欧美激情在线五月| 欧美一级在线播放| 国产成人欧美在线观看| 亚洲视频视频在线| 欧美日韩亚洲网| 亚洲国产精品va在线看黑人| 成人激情视频在线| 欧美最猛性xxxxx免费| 欧美激情亚洲激情| 91九色精品视频| 久久久精品亚洲| 欧美理论电影在线播放| 国产精品美女999| 欧美专区日韩视频| 国产精品成熟老女人| 成人国产精品色哟哟| 欧美精品一区二区三区国产精品| 日韩高清有码在线| 国产精品99导航| 日韩精品中文字幕有码专区| 久久国产精品久久久久| 日本午夜人人精品| 综合久久五月天| 全亚洲最色的网站在线观看| 日韩精品中文字| 国产精品女人久久久久久| 4438全国亚洲精品在线观看视频| 日韩性生活视频| 日韩日本欧美亚洲| 成人免费视频网址| 亚洲欧美激情另类校园| 精品久久久久久久中文字幕| 热久久美女精品天天吊色| 久久影视电视剧免费网站清宫辞电视| 日韩女优在线播放| 伊人久久男人天堂| 亚洲精品成人免费| 久久精品欧美视频| 欧美精品国产精品日韩精品| 亚洲国产黄色片| 另类天堂视频在线观看| 欧美在线视频网| 一道本无吗dⅴd在线播放一区| 午夜精品一区二区三区在线播放| 成人亚洲欧美一区二区三区| 91精品在线看| 日韩精品免费一线在线观看| 亚洲欧美综合区自拍另类| 欧美日韩成人精品| 国产美女扒开尿口久久久| 久久天天躁狠狠躁夜夜av| 精品中文视频在线| 中文字幕九色91在线| 日韩精品在线影院| 一区二区三区www| 亚洲丁香婷深爱综合| 91精品啪aⅴ在线观看国产| 精品成人乱色一区二区| 91深夜福利视频| 久久免费精品视频| 亚洲精品视频播放| 欧美激情免费视频| 欧美黑人又粗大| 欧美精品日韩三级| 91av在线视频观看| 高清日韩电视剧大全免费播放在线观看| 欧美在线视频观看| 91亚洲永久免费精品| 欧美富婆性猛交| 欧美精品videosex性欧美| 91精品免费久久久久久久久| 136fldh精品导航福利| 国产精品福利片| 国产亚洲精品久久久久久777| 国产a∨精品一区二区三区不卡| 欧美精品国产精品日韩精品| 国产91在线视频| 日韩有码在线视频| 久久精品久久精品亚洲人| 精品福利视频导航| 久久国产精品网站| 国产精品高潮呻吟久久av黑人| 精品动漫一区二区三区| 久久影视电视剧凤归四时歌| 精品亚洲夜色av98在线观看| 北条麻妃99精品青青久久| 国产精品久久久久一区二区| 欧美一级大片在线免费观看| 777午夜精品福利在线观看| 黄色精品在线看| 精品中文字幕在线观看| 91精品视频免费| 欧美精品免费在线观看| 亚洲女人初尝黑人巨大| 欧美高清理论片| 欧美日韩福利在线观看| 欧美人交a欧美精品| 国产精品精品一区二区三区午夜版| 亚洲黄页网在线观看| 中文日韩在线视频| 久久偷看各类女兵18女厕嘘嘘| 成人欧美一区二区三区在线湿哒哒| 亚洲www视频| 欧美视频第一页| 国产女人18毛片水18精品| 中文字幕亚洲无线码a| 国产精品福利无圣光在线一区| 久久久久免费视频| 日韩av免费看网站| www.欧美精品| 国产精品麻豆va在线播放| 欧美国产日韩一区| 成人午夜激情网| 国产激情视频一区| 欧美大学生性色视频| 欧美精品性视频| 91香蕉电影院| 国产精品久久久久久久久久久久| 成人免费视频xnxx.com| 国产精品一区二区三区久久| 亚洲欧美在线x视频| 欧美伊久线香蕉线新在线| 国产欧美一区二区三区在线看| 欧美午夜片欧美片在线观看| 亚洲永久在线观看| 久久精品亚洲热| 国产精品偷伦免费视频观看的| 欧美一级片免费在线| 欧美性视频网站| 性欧美在线看片a免费观看| 91热精品视频| 国产美女被下药99|