<?php
/**
* 驗證碼檢查
*/
function check_verify($code, $id = ""){
$verify = new \Think\Verify();
return $verify->check($code, $id);
}
/**
* 將返回的數據集轉換成樹
* @param array $list 數據集
* @param string $pk 主鍵
* @param string $pid 父節點名稱
* @param string $child 子節點名稱
* @param integer $root 根節點ID
* @return array 轉換後的樹
*/
function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root=0) {
$tree = array();// 創建Tree
if(is_array($list)) {
// 創建基於主鍵的數組引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判斷是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[$data[$pk]] =& $list[$key];
}else{
if (isset($refer[$parentId])) {
$parent =& $refer[$parentId];
$parent[$child][] =& $list[$key];
}
}
}
}
return $tree;
}
/**
* 將樹形結構轉換爲帶層級的列表
*
* @param array $tree
* @param int $_level
* @param string $name
* @param string $description
* @return array
*/
function treeToList($tree, $_level = 0){
$ret = array();
foreach ($tree as $val) {
$arr = array();
$arr['id'] = $val['id'];
$arr['name'] = $val['name'];
$arr['description'] = $val['description'];
$arr['_level'] = $_level;
if (isset($val['_child']) && !empty($val['_child'])) { //有子元素
$children = treeToList($val['_child'], $_level + 1);
// 將所有字分類組合到一個數組
$_ret = array_merge(array($arr), $children);
} else {
$_ret = array($arr);
}
// 此處合併是防止多個頂級分類合併不到一個數組
$ret = array_merge($ret, $_ret);
}
return $ret;
}
/**
*
* 用於tp上傳重新生成文件名
* 'saveName' => array('get_file_name',array('__FILE__')),//array('uniqid',''),
* @param string $name (tp上傳類裏__FILE__)
*/
function get_file_name($name){
$extend = pathinfo ( $name );
$extend_name = '.'.$extend[ "extension" ];
$name = str_replace($extend_name, "", $name);
return $name.'_'.date("YmdHis");
}
/**
*
* 二維數組按照指定key排序
* @param array $arr 要進行排序的數組
* @param string $keys 排序數組指定的key
* @param string $type 排序的方式(默認升序)
* @param int $limit 排序完成後取出的數組長度(默認0是表示全取)
* @return array
*/
function array_sort($arr,$keys,$type='asc',$limit=0){
$keysvalue = array(); //臨時存儲數組索引和指定key值的一維數組
$new_array = array(); //排序完成後的新數組
// 從數組中取出索引和指定keys對應的值組成新的數組
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
// 對新的數組按照排序規則進行排序
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
// 按照排序後的數組$keysvalue索引和要排序數組$arr索引相同設置返回數組值
if ($limit > 0){
$i = 0;
foreach ($keysvalue as $k=>$v){
if ($i < $limit){
$new_array[$k] = $arr[$k];
}else{
break;
}
$i ++;
}
}else{
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
}
return $new_array;
}
備註:因爲之前的項目沒有做這種整理記錄,到現在總是需要一次次的寫,爲防止以後出現這種情況,決定從現在開始收集記錄。
php 框架thinkphp裏自寫的常用函數
背景:在應用tp的時候,將一些可能常用的函數,收集了下轉移到了common目錄下的function.php文件裏作爲公共函數便於調用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.