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

首頁 > 開發 > PHP > 正文

php基本函數匯總

2024-05-04 23:37:31
字體:
來源:轉載
供稿:網友

本文給大家匯總了16個常見的php基本函數,涵蓋的面很廣,這里推薦給大家,希望對大家學習php能夠有所幫助。

1.統計數組元素個數

 

 
  1. $arr = array( 
  2. '1011,1003,1008,1001,1000,1004,1012'
  3. '1009'
  4. '1011,1003,1111' 
  5. ); 
  6. $result = array(); 
  7. foreach ($arr as $str) { 
  8. $str_arr = explode(',', $str); 
  9. foreach ($str_arr as $v) { 
  10. // $result[$v] = isset($result[$v]) ? $result[$v] : 0; 
  11. // $result[$v] = $result[$v] + 1; 
  12. $result[$v] = isset($result[$v]) ? $result[$v]+1 : 1; 
  13. print_r($result); 
  14. //Array 
  15. [1011] => 2 
  16. [1003] => 2 
  17. [1008] => 1 
  18. [1001] => 1 
  19. [1000] => 1 
  20. [1004] => 1 
  21. [1012] => 1 
  22. [1009] => 1 
  23. [1111] => 1 

2. 循環刪除目錄

 

 
  1. function cleanup_directory($dir) { 
  2. foreach (new DirectoryIterator($dir) as $file) { 
  3. if ($file->isDir()) { 
  4. if (! $file->isDot()) { 
  5. cleanup_directory($file->getPathname()); 
  6. else { 
  7. unlink($file->getPathname()); 
  8. rmdir($dir); 

3.無限極分類生成樹

 

 
  1. function generateTree($items){ 
  2. $tree = array(); 
  3. foreach($items as $item){ 
  4. if(isset($items[$item['pid']])){ 
  5. $items[$item['pid']]['son'][] = &$items[$item['id']]; 
  6. }else
  7. $tree[] = &$items[$item['id']]; 
  8. return $tree; 
  9. function generateTree2($items){ 
  10. foreach($items as $item) 
  11. $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']]; 
  12. return isset($items[0]['son']) ? $items[0]['son'] : array(); 
  13.  
  14. $items = array( 
  15. 1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'), 
  16. 2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'), 
  17. 3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'), 
  18. 4 => array('id' => 4, 'pid' => 3, 'name' => '長豐縣'), 
  19. 5 => array('id' => 5, 'pid' => 1, 'name' => '安慶市'), 
  20. ); 
  21. print_r(generateTree($items)); 
  22. /** 
  23. * 如何取數據格式化的樹形數據 
  24. */ 
  25. $tree = generateTree($items); 
  26. function getTreeData($tree){ 
  27. foreach($tree as $t){ 
  28. echo $t['name'].'<br>'
  29. if(isset($t['son'])){ 
  30. getTreeData($t['son']); 

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

 

 
  1. var test = ['ab''ac''bd''bc']; 
  2. test.sort(function(a, b) { 
  3. if(a < b) { 
  4. return -1; 
  5.  
  6. if(a > b) { 
  7. return 1; 
  8.  
  9. return 0; 
  10. }); 

5.array_reduce

 

 
  1. $raw = [1,2,3,4,5,]; 
  2. // array_reduce 的第三個參數是 $result 的初始值 
  3. array_reduce($raw, function($result, $value) { 
  4. $result[$value] = $value; 
  5.  
  6. return $result; 
  7. }, []); 
  8. // [1 => 1, 2 => 2, ... 5 => 5] 

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

 

 
  1. $input = ['key' => 'value']; 
  2. array_map(function($key, $value) { 
  3.  
  4. echo $key . $value; 
  5. }, array_keys($input), $input) 
  6. // 'keyvalue' 
  7. $double = function($item) { 
  8. return 2 * $item; 
  9.  
  10. $result = array_map($double, [1,2,3]); 
  11.  
  12. // 2 4 6 

7.繁殖兔子

 

 
  1. $month = 12; 
  2. $fab = array(); 
  3.  
  4. $fab[0] = 1; 
  5. $fab[1] = 1; 
  6.  
  7. for ($i = 2; $i < $month; $i++) 
  8. $fab[$i] = $fab[$i - 1] + $fab[$i - 2]; 
  9.  
  10. for ($i = 0; $i < $month; $i++) 
  11. echo sprintf("第{%d}個月兔子為:{%d}",$i, $fab[$i])."<br/>"

8 .datetime

 

 
  1. function getCurMonthFirstDay($date) 
  2. return date('Y-m-01', strtotime($date)); 
  3. getCurMonthLastDay('2015-07-23'
  4. function getCurMonthLastDay($date) 
  5. return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' +1 month -1 day')); 

9.加密解密

 

 
  1. function encrypt($data, $key) 
  2. $key = md5($key); 
  3. $x = 0; 
  4. $len = strlen($data); 
  5. $l = strlen($key); 
  6. $char = ''
  7. for ($i = 0; $i < $len; $i++) 
  8. if ($x == $l) 
  9. $x = 0; 
  10. $char .= $key{$x}; 
  11. $x++; 
  12. $str = ''
  13. for ($i = 0; $i < $len; $i++) 
  14. $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256); 
  15. return base64_encode($str); 
  16.  
  17. function decrypt($data, $key) 
  18. $key = md5($key); 
  19. $x = 0; 
  20. $data = base64_decode($data); 
  21. $len = strlen($data); 
  22. $l = strlen($key); 
  23. $char = ''
  24. for ($i = 0; $i < $len; $i++) 
  25. if ($x == $l) 
  26. $x = 0; 
  27. $char .= substr($key, $x, 1); 
  28. $x++; 
  29. $str = ''
  30. for ($i = 0; $i < $len; $i++) 
  31. if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) 
  32. $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); 
  33. else 
  34. $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); 
  35. return $str; 

10 . 多維數組降級

 

 
  1. function array_flatten($arr) { 
  2. $result = []; 
  3.  
  4. array_walk_recursive($arr, function($value) use (&$result) { 
  5. $result[] = $value; 
  6. }); 
  7.  
  8. return $result; 
  9. print_r(array_flatten([1,[2,3],[4,5]]));// [1,[2,3],[4,5]] => [1,2,3,4,5] 
  10. // var new_array = old_array.concat(value1[, value2[, ...[, valueN]]]) 
  11. var test = [1,2,3,[4,5,6],[7,8]]; 
  12. [].concat.apply([], test); // [1,2,3,4,5,6,7,8] 對于 test 數組中的每一個 value, 將它 concat 到空數組 [] 中去,而因為 concat 是 Array 的 prototype,所以我們用一個空 array 作載體 
  13. var test1 = [1,2,[3,[4,[5]]]]; 
  14.  
  15. function flatten(arr) { 
  16. return arr.reduce(function(pre, cur) { 
  17. if(Array.isArray(cur)) { 
  18. return flatten(pre.concat(cur)); 
  19.  
  20. return pre.concat(cur); 
  21. }, []); 
  22.  
  23. // [1,2,3,4,5] 
  24. json_encode中文 
  25. function json_encode_wrapper ($result) 
  26. if(defined('JSON_UNESCAPED_UNICODE')){ 
  27. return json_encode($result,JSON_UNESCAPED_UNICODE|JSON_NUMERIC_CHECK); 
  28. }else { 
  29. return preg_replace( 
  30. array("#///u([0-9a-f][0-9a-f][0-9a-f][0-9a-f])#ie""//"(/d+)/"/",), 
  31. array("iconv('UCS-2', 'UTF-8', pack('H4', '//1'))""//1"), 
  32. json_encode($result) 
  33. ); 

12.二維數組去重

 

 
  1. $arr = array( 
  2.  
  3. array('id'=>'2','title'=>'...','ding'=>'1','jing'=>'1','time'=>'...','url'=>'...','dj'=>'...'), 
  4.  
  5. array('id'=>'2','title'=>'...','ding'=>'1','jing'=>'1','time'=>'...','url'=>'...','dj'=>'...'
  6.  
  7. ); 
  8. function about_unique($arr=array()){  
  9. /*將該種二維數組看成一維數組,則 該一維數組的value值有相同的則干掉只留一個,并將該一維 數組用重排后的索引數組返回,而返回的一維數組中的每個元素都是 原始key值形成的關聯數組 */ 
  10. $keys =array(); 
  11. $temp = array(); 
  12. foreach($arr[0] as $k=>$arrays) { 
  13. /*數組記錄下關聯數組的key值*/ 
  14. $keys[] = $k; 
  15. //return $keys; /*降維*/  
  16. foreach($arr as $k=>$v) { 
  17. $v = join(",",$v); //降維  
  18. $temp[] = $v; 
  19. $temp = array_unique($temp); //去掉重復的內容  
  20. foreach ($temp as $k => $v){ 
  21. /*再將拆開的數組按索引數組重新組裝*/ 
  22. $temp[$k] = explode(",",$v);  
  23. }  
  24. //return $temp; /*再將拆開的數組按關聯數組key值重新組裝*/  
  25. foreach($temp as $k=>$v) { 
  26. foreach($v as $kkk=>$ck) { 
  27. $data[$k][$keys[$kkk]] = $temp[$k][$kkk]; 
  28. return $data; 

13.格式化字節大小

 

 
  1. /** 
  2. * 格式化字節大小 
  3. * @param number $size 字節數 
  4. * @param string $delimiter 數字和單位分隔符 
  5. * @return string 格式化后的帶單位的大小 
  6. * @author  
  7. */ 
  8. function format_bytes($size, $delimiter = '') { 
  9. $units = array('B''KB''MB''GB''TB''PB'); 
  10. for ($i = 0; $size >= 1024 && $i < 6; $i++) $size /= 1024; 
  11. return round($size, 2) . $delimiter . $units[$i]; 

14.3分鐘前

 

 
  1. /** 
  2. * 將指定時間戳轉換為截止當前的xx時間前的格式 例如 return '3分鐘前'' 
  3. * @param string|int $timestamp unix時間戳 
  4. * @return string 
  5. */ 
  6. function time_ago($timestamp) { 
  7. $etime = time() - $timestamp; 
  8. if ($etime < 1) return '剛剛';  
  9. $interval = array (  
  10. 12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d', $timestamp).')'
  11. 30 * 24 * 60 * 60 => '個月前 ('.date('m-d', $timestamp).')'
  12. 7 * 24 * 60 * 60 => '周前 ('.date('m-d', $timestamp).')'
  13. 24 * 60 * 60 => '天前'
  14. 60 * 60 => '小時前'
  15. 60 => '分鐘前'
  16. 1 => '秒前' 
  17. ); 
  18. foreach ($interval as $secs => $str) { 
  19. $d = $etime / $secs; 
  20. if ($d >= 1) { 
  21. $r = round($d); 
  22. return $r . $str; 
  23. }; 

15.身份證號

 

 
  1. /** 
  2. * 判斷參數字符串是否為天朝身份證號 
  3. * @param $id 需要被判斷的字符串或數字 
  4. * @return mixed false 或 array[有內容的array boolean為真] 
  5. */ 
  6. function is_citizen_id($id) { 
  7. //長度效驗 18位身份證中的X為大寫 
  8. $id = strtoupper($id); 
  9. if(!(preg_match('/^/d{17}(/d|X)$/',$id) || preg_match('/^/d{15}$/',$id))) { 
  10. return false
  11. //15位老號碼轉換為18位 并轉換成字符串 
  12. $Wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);  
  13. $Ai = array('1''0''X''9''8''7''6''5''4''3''2');  
  14. $cardNoSum = 0; 
  15. if(strlen($id)==16) { 
  16. $id = substr(0, 6).'19'.substr(6, 9);  
  17. for($i = 0; $i < 17; $i++) { 
  18. $cardNoSum += substr($id,$i,1) * $Wi[$i]; 
  19. }  
  20. $seq = $cardNoSum % 11;  
  21. $id = $id.$Ai[$seq]; 
  22. //效驗18位身份證最后一位字符的合法性 
  23. $cardNoSum = 0; 
  24. $id17 = substr($id,0,17); 
  25. $lastString = substr($id,17,1); 
  26. for($i = 0; $i < 17; $i++) { 
  27. $cardNoSum += substr($id,$i,1) * $Wi[$i]; 
  28. }  
  29. $seq = $cardNoSum % 11; 
  30. $realString = $Ai[$seq]; 
  31. if($lastString!=$realString) {return false;} 
  32. //地域效驗 
  33. $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=>"國外"); 
  34. $City = substr($id, 0, 2); 
  35. $BirthYear = substr($id, 6, 4); 
  36. $BirthMonth = substr($id, 10, 2); 
  37. $BirthDay = substr($id, 12, 2); 
  38. $Sex = substr($id, 16,1) % 2 ;//男1 女0 
  39. //$Sexcn = $Sex?'男':'女'; 
  40. //地域驗證 
  41. if(is_null($oCity[$City])) {return false;} 
  42. //出生日期效驗 
  43. if($BirthYear>2078 || $BirthYear<1900) {return false;} 
  44. $RealDate = strtotime($BirthYear.'-'.$BirthMonth.'-'.$BirthDay); 
  45. if(date('Y',$RealDate)!=$BirthYear || date('m',$RealDate)!=$BirthMonth || date('d',$RealDate)!=$BirthDay) { 
  46. return false
  47. return array('id'=>$id,'location'=>$oCity[$City],'Y'=>$BirthYear,'m'=>$BirthMonth,'d'=>$BirthDay,'sex'=>$Sex); 

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

 

 
  1. $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', ), ...... ); 
  2. $ids = array(); $ids = array_map('array_shift', $user); 
  3. $ids = array_column($user, 'id');//php5.5 
  4. $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
精品国产欧美一区二区五十路| 日韩精品久久久久久久玫瑰园| 日韩中文字幕在线视频| 久久综合色88| 国产精品高清在线观看| 精品女厕一区二区三区| 日韩在线免费视频| 97在线看福利| 亚洲欧美一区二区三区久久| 欧美性感美女h网站在线观看免费| 91大神在线播放精品| 精品视频久久久久久| 久久久国产精品亚洲一区| 在线播放国产一区中文字幕剧情欧美| 91tv亚洲精品香蕉国产一区7ujn| 国产精品美女免费看| 欧美电影免费观看网站| 亚洲午夜精品久久久久久久久久久久| 亚洲美女黄色片| 在线播放国产一区中文字幕剧情欧美| 欧美日韩国产999| 91久久精品美女高潮| 久久精品国产久精国产一老狼| 亚洲成人av片在线观看| 日本亚洲精品在线观看| 91国产中文字幕| 91在线视频导航| 欧美亚洲另类激情另类| 91国内产香蕉| 91九色在线视频| 日韩电影中文字幕在线| 欧美日韩亚洲一区二区三区| 精品动漫一区二区三区| 成人深夜直播免费观看| 国产精品福利片| 欧美成年人视频网站| 美女啪啪无遮挡免费久久网站| 欧美大片免费观看| 久久福利视频导航| 国内精品久久久久久久久| 91亚洲精品一区| 久久99国产精品久久久久久久久| 理论片在线不卡免费观看| 国产自摸综合网| 国产精品美女无圣光视频| 国产高清视频一区三区| 国产有码一区二区| 91色在线观看| 国产精品pans私拍| 国产欧美日韩91| 亚洲免费一在线| 久久视频在线观看免费| 亚洲精品99久久久久中文字幕| 欧美日韩加勒比精品一区| 九九久久久久久久久激情| 国产欧美一区二区三区四区| 国产精品高潮视频| 成人欧美一区二区三区黑人| 日韩激情第一页| 在线电影av不卡网址| 亚洲欧美激情四射在线日| 97免费视频在线播放| 91精品视频在线免费观看| 亚洲一区二区三区在线视频| 欧美成人午夜激情| 欧美激情视频在线观看| 久久影视电视剧凤归四时歌| 色综合久久88色综合天天看泰| 国产日产欧美a一级在线| 亚洲精品wwwww| 欧美激情xxxx| 78色国产精品| 操日韩av在线电影| 亚洲一区二区久久| 日韩欧美在线中文字幕| 51ⅴ精品国产91久久久久久| 成人福利网站在线观看11| 国产精品电影在线观看| 国产精品成人av性教育| 久久综合亚洲社区| 一区国产精品视频| 欧美午夜片欧美片在线观看| 亚洲第一精品福利| 欧美在线观看日本一区| 在线观看欧美日韩| 亚洲欧美一区二区三区四区| 日韩a**中文字幕| 久久91亚洲人成电影网站| 欧美综合一区第一页| 92看片淫黄大片看国产片| 欧美日韩亚洲国产一区| 亚洲国产精品va在线看黑人| 欧美乱妇高清无乱码| 26uuu亚洲国产精品| 91色精品视频在线| 欧美黑人性生活视频| 高清欧美电影在线| 欧美精品久久久久久久久| 97在线免费观看视频| 亚洲已满18点击进入在线看片| 欧美精品久久久久久久免费观看| 成人激情av在线| 国产在线999| 亚洲一区二区三区在线免费观看| 欧美精品aaa| 亚洲激情在线视频| 久久国产精品久久精品| 97av在线视频免费播放| 欧美又大又粗又长| 日本不卡高字幕在线2019| 91久久嫩草影院一区二区| 国产精品一区二区3区| 亚洲成色777777在线观看影院| 亚洲自拍偷拍一区| 欧美大片欧美激情性色a∨久久| 亚洲黄页视频免费观看| 精品久久久久久国产91| 日韩av片免费在线观看| 国产精品18久久久久久麻辣| 最近2019年日本中文免费字幕| 最好看的2019年中文视频| 精品亚洲男同gayvideo网站| 尤物yw午夜国产精品视频| 亚洲美女性生活视频| 日韩精品中文字幕有码专区| 欧美孕妇性xx| 日本精品va在线观看| 国产99久久久欧美黑人| 国产日韩在线精品av| 亚洲欧美中文字幕| 在线精品高清中文字幕| 欧美日韩在线免费| 欧美日韩美女在线| 亚洲精品日韩激情在线电影| 日韩成人在线视频网站| 久久91精品国产91久久久| 欧美放荡办公室videos4k| 色哟哟入口国产精品| 91在线观看免费高清| 亚洲第一福利网| 精品美女久久久久久免费| 91麻豆国产精品| 久久综合色影院| 在线播放国产一区二区三区| 57pao成人永久免费视频| 性欧美视频videos6一9| 欧美成人精品在线| 亚洲人成电影网站色…| 国内精品免费午夜毛片| 中文字幕亚洲欧美日韩在线不卡| 日韩成人在线视频| 精品无人区乱码1区2区3区在线| 91sao在线观看国产| 久久九九国产精品怡红院| 亚洲男人天堂九九视频| 色综合老司机第九色激情| 97香蕉超级碰碰久久免费软件| 精品视频在线导航| 狠狠躁天天躁日日躁欧美| 日韩成人av网| 亚洲精品720p| 欧美成人精品激情在线观看| 奇门遁甲1982国语版免费观看高清| 亚洲男人第一av网站|