Maison > Article > développement back-end > 11 fonctions PHP courantes à partager
Cette fois, je vous apporte le partage de connaissances sur 11 fonctions PHP couramment utilisées. Ces compétences peuvent grandement améliorer l'efficacité de notre développement quotidien et améliorer la qualité de notre code.
1. Outil de débogage de points d'arrêt mis en avant (flexible et pratique, il ne peut pas se limiter aux points d'arrêt et aux backgroups) :
function debug($data){ if(empty($data)){ var_dump($data); die; } if(!is_array($data)){ echo "<pre style='background-color: #000;color: #fff;font-size: 14px;min-height: 100px;line-height: 50px;'>"; echo "<span style='margin-left: 20px;font-size: 18px;'>"; print_r($data); echo "</span>"; echo ""; die; } echo "
"; echo "<br /><br /><br /><span style='margin-left: 20px;font-size: 13px;'>"; print_r($data); echo "</span><br /><br /><br />"; echo ""; die; }
/* @param $data array 数据 * @param $pid int 父类关系值 * @param $parentFieldstring 父类字段 * @param $pkField string 主键字段 * return array */ function getTreesPro($data,$pid='0',$parentField='pid',$pkField='id'){ $tree =array(); foreach($data as $k=>$v){ if($v[$parentField] == $pid){ $temp = getTreesPro($data,$v[$pkField]);//$data是对象则改为$v->$pkField if(!empty($temp)){ //分层 $v['son']= getTreesPro($data,$v[$pkField]); } $tree[] = $v; } } return $tree; }
function arrayToObject($arr){ if(is_array($arr)){ return (object) array_map(__FUNCTION__, $arr); }else{ return $arr; } }
function object2array(&$object) { $object = json_decode( json_encode( $object),true); return $object; }
function generateJnlNo() { date_default_timezone_set('PRC'); $yCode = array('A','B','C','D','E','F','G','H','I','J'); $orderSn = ''; $orderSn .= $yCode[(intval(date('Y')) - 1970) % 10]; $orderSn .= strtoupper(dechex(date('m'))); $orderSn .= date('d').substr(time(), -5); $orderSn .= substr(microtime(), 2, 5); $orderSn .= sprintf('%02d', mt_rand(0, 99)); //echo $orderSn,PHP_EOL; //得到唯一订单号:G107347128750079 return $orderSn; }
/** * 用法1: * @code php * $rows = array( * array('id' => 1, 'value' => '1-1'), * array('id' => 2, 'value' => '2-1'), *); * $hashmap = Helper_Array::hashMap($rows, 'id', 'value'); * * dump($hashmap); * // 输出结果为 * // array( * // 1 => '1-1', * // 2 => '2-1', * //) * @endcode * * 如果省略 $value_field 参数,则转换结果每一项为包含该项所有数据的数组。 * * 用法2: * @code php * $rows = array( * array('id' => 1, 'value' => '1-1'), * array('id' => 2, 'value' => '2-1'), *); * $hashmap = Helper_Array::hashMap($rows, 'id'); * * dump($hashmap); * // 输出结果为 * // array( * // 1 => array('id' => 1, 'value' => '1-1'), * // 2 => array('id' => 2, 'value' => '2-1'), * //) * @endcode * * @param array $arr 数据源 * @param string $key_field 按照什么键的值进行转换 * @param string $value_field 对应的键值 * * @return array 转换后的 HashMap 样式数组 */ function to_hashmap($arr, $key_field, $value_field = null){ $ret = array(); if ($value_field){ foreach ($arr as $row){ $ret[$row[$key_field]] = $row[$value_field]; } } else{ foreach ($arr as $row){ $ret[$row[$key_field]] = $row; } } return $ret; }
Par exemple, récupérez toutes les valeurs d'identification. à partir des données $brandList :$ids = array_column($brandList,'id'); Résultat de la déduplication $ids= array_unique(array_column($brandList,'id'));
if (!function_exists('array_column')) { /** * Returns the values from a single column of the input array, identified by * the $columnKey. * * Optionally, you may provide an $indexKey to index the values in the returned * array by the values from the $indexKey column in the input array. * * @param array $input A multi-dimensional array (record set) from which to pull * a column of values. * @param mixed $columnKey The column of values to return. This value may be the * integer key of the column you wish to retrieve, or it * may be the string key name for an associative array. * @param mixed $indexKey (Optional.) The column to use as the index/keys for * the returned array. This value may be the integer key * of the column, or it may be the string key name. * @return array */ function array_column($input = null, $columnKey = null, $indexKey = null){ // Using func_get_args() in order to check for proper number of // parameters and trigger errors exactly as the built-in array_column() // does in PHP 5.5. $argc = func_num_args(); $params = func_get_args(); if ($argc < 2) { trigger_error("array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING); return array(); } if (!is_array($params[0])) { trigger_error('array_column() expects parameter 1 to be array, ' . gettype($params[0]) . ' given', E_USER_WARNING); return array(); } if (!is_int($params[1]) && !is_float($params[1]) && !is_string($params[1]) && $params[1] !== null && !(is_object($params[1]) && method_exists($params[1], '__toString')) ) { trigger_error('array_column(): The column key should be either a string or an integer', E_USER_WARNING); return array(); } if (isset($params[2]) && !is_int($params[2]) && !is_float($params[2]) && !is_string($params[2]) && !(is_object($params[2]) && method_exists($params[2], '__toString')) ) { trigger_error('array_column(): The index key should be either a string or an integer', E_USER_WARNING); return array(); } $paramsInput = $params[0]; $paramsColumnKey = ($params[1] !== null) ? (string) $params[1] : null; $paramsIndexKey = null; if (isset($params[2])) { if (is_float($params[2]) || is_int($params[2])) { $paramsIndexKey = (int) $params[2]; } else { $paramsIndexKey = (string) $params[2]; } } $resultArray = array(); foreach ($paramsInput as $row) { $key = $value = null; $keySet = $valueSet = false; if ($paramsIndexKey !== null && array_key_exists($paramsIndexKey, $row)) { $keySet = true; $key = (string) $row[$paramsIndexKey]; } if ($paramsColumnKey === null) { $valueSet = true; $value = $row; } elseif (is_array($row) && array_key_exists($paramsColumnKey, $row)) { $valueSet = true; $value = $row[$paramsColumnKey]; } if ($valueSet) { if ($keySet) { $resultArray[$key] = $value; } else { $resultArray[] = $value; } } } return array_unique($resultArray); } }
public function cache($seconds_to_cache = 3600){ $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT"; header("Expires: $ts"); header("Pragma: cache"); header("Cache-Control: max-age=$seconds_to_cache"); }
public function disCache(){ $ts = gmdate("D, d M Y H:i:s",strtotime('-1 year')) . " GMT"; header("Expires: $ts"); header("Last-Modified: $ts"); header("Pragma: no-cache"); header("Cache-Control: no-cache, must-revalidate"); }
public function referer(){ return $_SERVER['HTTP_REFERER']; }
public function pageinfo(){ $pageinfo = new \stdClass; $pageinfo->length = isset($_GET['length']) ? $_GET['length'] : $this->length; $pageinfo->page = isset($_GET['page']) ? $_GET['page'] : 1; $pageinfo->end_id = isset($_GET['end_id']) ? $_GET['end_id'] : 1; $pageinfo->offset= $pageinfo->page<=1 ? 0 : ($pageinfo->page-1) * $pageinfo->length; $pageinfo->totalNum = $pageinfo->totalNum? $pageinfo->totalNum : 0; $pageinfo->totalPage = $pageinfo->totalNum / $pageinfo->length; return $pageinfo;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!