TP5各種實(shí)用函數(shù)

/**

* @param int $num 阿拉伯?dāng)?shù)字

* @return mixed|string

*/functionnumToWord(int$num){$chiNum=array('零','一','二','三','四','五','六','七','八','九');$chiUni=array('','十','百','千','萬','億','十','百','千');$num_str=(string)$num;$count=strlen($num_str);$last_flag=true;//上一個(gè) 是否為0$zero_flag=true;//是否第一個(gè)$temp_num=null;//臨時(shí)數(shù)字$chiStr='';//拼接結(jié)果if($count==2){//兩位數(shù)$temp_num=$num_str[0];$chiStr=$temp_num==1?$chiUni[1]:$chiNum[$temp_num].$chiUni[1];$temp_num=$num_str[1];$chiStr.=$temp_num==0?'':$chiNum[$temp_num];}elseif($count>2){$index=0;for($i=$count-1;$i>=0;$i--){$temp_num=$num_str[$i];if($temp_num==0){if(!$zero_flag&&!$last_flag){$chiStr=$chiNum[$temp_num].$chiStr;$last_flag=true;}}else{$chiStr=$chiNum[$temp_num].$chiUni[$index%9].$chiStr;$zero_flag=false;$last_flag=false;}$index++;}}else{$chiStr=$chiNum[$num_str[0]];}return$chiStr;}


/**

* @param string|int $str 手機(jī)號(hào)碼

* @param int $start 開始位置健蕊,從0開始

* @param int $length 隱藏長(zhǎng)度

* @return bool|string|string[]

*/functionhidePhone($str,int$start=3,int$length=4){//獲取最后一位$end=$start+$length;//判斷傳參是否正確if($start<0||$end>11)returnfalse;$replace='';//用于判斷多少for($i=0;$i<$length;$i++)$replace.='*';returnsubstr_replace($str,$replace,$start,$length);}



/**

* 獲取上周的時(shí)間數(shù)組

* @param $day 獲取當(dāng)前周的第幾天 周日是 0 周一到周六是1-6?

* @param $format 日期格式

* @param $last 是否獲取上周蝗砾,1=上周7天徘铝,0=這周7天

* @return array

*/

function getWeekDayArr(int $day, string $format = 'Ymd', int $last = 1)

{

? ? if ($last == 1) {

? ? ? ? //獲取本周開始日期,如果$day是0是周日:-6天;其它:$day-1天?

? ? ? ? $beginLastweek = strtotime(date($format) . ' -' . ($day ? $day - 1 : 6) . ' days');

? ? ? ? $curMonday = date($format, $beginLastweek);

? ? ? ? $startDay = date($format, strtotime("$curMonday -7 days"));

? ? ? ? $data = [

? ? ? ? ? ? $startDay,

? ? ? ? ? ? date($format, strtotime("$startDay +1 days")),

? ? ? ? ? ? date($format, strtotime("$startDay +2 days")),

? ? ? ? ? ? date($format, strtotime("$startDay +3 days")),

? ? ? ? ? ? date($format, strtotime("$startDay +4 days")),

? ? ? ? ? ? date($format, strtotime("$startDay +5 days")),

? ? ? ? ? ? date($format, strtotime("$startDay +6 days")),

? ? ? ? ];

? ? } else {

? ? ? ? //獲取當(dāng)前周幾

? ? ? ? //獲取本周開始日期盒刚,如果$day是0是周日:-6天;其它:$day-1天

? ? ? ? $week = date('w', time()) - $day + 1;

? ? ? ? $data = [];

? ? ? ? for ($i = 1; $i <= 7; $i++) {

? ? ? ? ? ? $data[$i] = date($format, strtotime('+' . $i - $week . ' days'));

? ? ? ? }

? ? }

? ? return $data;

}





/**

* 時(shí)間戳轉(zhuǎn)換

* @param $time

* @return string

*/functiontimeToBefore(int$time){$t=time()-$time;$f=array('31536000'=>'年','2592000'=>'個(gè)月','604800'=>'星期','86400'=>'天','3600'=>'小時(shí)','60'=>'分鐘','1'=>'秒');foreach($fas$k=>$v){if(0!=$c=floor($t/(int)$k)){return$c.$v.'前';}}}

/**

* 將多維數(shù)組繼續(xù)分頁,自定義分頁效果

* @param array &$array 數(shù)組

* @param int $page 當(dāng)前頁數(shù)

* @param int $limit 每頁頁數(shù)

* @param int $order 0-不變 1-反序

* @param bool $preserveKey true - 保留鍵名? false - 默認(rèn)彩届。重置鍵名

*/functionarrayToPage(Array&$array,int$page=1,int$limit=20,int$order=0,bool$preserveKey=false){$start=($page-1)*$limit;//計(jì)算每次分頁的開始位置//反序if($order==1)$array=array_reverse($array);$array=array_slice($array,$start,$limit,$preserveKey);}

/**

* 二維數(shù)組根據(jù)pid生成多維樹

* @param $list 父子級(jí)拼接數(shù)組傳入

* @param $pid 父級(jí)ID字段

* @param $child 子集

* @return array

*/functionlistToTree($list,$pid='pid',$child='children'){$tree=array();// 創(chuàng)建Treeif(is_array($list)){// 創(chuàng)建基于主鍵的數(shù)組引用$refer=array();foreach($listas$key=>$data)$refer[$data['id']]=&$list[$key];foreach($listas$key=>$data){// 判斷是否存在parent$parentId=$data[$pid];if(0==$parentId){$tree[]=&$list[$key];$list[$key][$child]=[];}else{if(isset($refer[$parentId])){$parent=&$refer[$parentId];$parent[$child][]=&$list[$key];}}}}return$tree;}



/**

* 根據(jù)相關(guān)鍵值生成父子關(guān)系

* @param array $arr1 數(shù)組1

* @param array $arr2 數(shù)組2

* @param string $arr1_key 數(shù)組1對(duì)應(yīng)的鍵值

* @param string $arr2_key 數(shù)組2對(duì)應(yīng)的父級(jí)鍵值

* @param string $child 合并的數(shù)組鍵值

*/functionlistToTree2(&$arr1,$arr2,$arr1_key='id',$arr2_key='pid',$child='children'){foreach($arr1as$i=>&$item1){foreach($arr2as$j=>$item2){if($item1[$arr1_key]==$item2[$arr2_key]){if(!isset($item1[$child])||!is_array($item1[$child]))$item1[$child]=[];$item1[$child][]=$item2;}}}}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伪冰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子樟蠕,更是在濱河造成了極大的恐慌贮聂,老刑警劉巖靠柑,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異吓懈,居然都是意外死亡歼冰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門耻警,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隔嫡,“玉大人,你說我怎么就攤上這事甘穿∪鳎” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵温兼,是天一觀的道長(zhǎng)秸滴。 經(jīng)常有香客問我,道長(zhǎng)募判,這世上最難降的妖魔是什么荡含? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮届垫,結(jié)果婚禮上释液,老公的妹妹穿的比我還像新娘。我一直安慰自己装处,他們只是感情好误债,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著符衔,像睡著了一般找前。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上判族,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天躺盛,我揣著相機(jī)與錄音,去河邊找鬼形帮。 笑死槽惫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辩撑。 我是一名探鬼主播界斜,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼合冀!你這毒婦竟也來了各薇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峭判,沒想到半個(gè)月后开缎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡林螃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年奕删,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疗认。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡完残,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出横漏,到底是詐尸還是另有隱情谨设,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布绊茧,位于F島的核電站铝宵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏华畏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一尊蚁、第九天 我趴在偏房一處隱蔽的房頂上張望亡笑。 院中可真熱鬧,春花似錦横朋、人聲如沸仑乌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晰甚。三九已至,卻和暖如春决帖,著一層夾襖步出監(jiān)牢的瞬間厕九,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工地回, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扁远,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓刻像,卻偏偏與公主長(zhǎng)得像畅买,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子细睡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355