Heim >Backend-Entwicklung >PHP-Tutorial >11 gängige PHP-Funktionen zum Teilen

11 gängige PHP-Funktionen zum Teilen

零到壹度
零到壹度Original
2018-03-19 14:49:391912Durchsuche

Dieses Mal teile ich Ihnen Wissen über 11 häufig verwendete PHP-Funktionen mit. Diese Fähigkeiten können die Effizienz unserer täglichen Entwicklung erheblich verbessern und die Qualität unseres Codes verbessern.

1. Hervorgehobenes Breakpoint-Debugging-Tool (flexibel und praktisch, es kann nicht auf Breakpoints und Backgroups beschränkt werden):

function debug($data){

    if(empty($data)){
        var_dump($data);
        die;
    }

    if(!is_array($data)){
        echo "<pre style=&#39;background-color: #000;color: #fff;font-size: 14px;min-height: 100px;line-height: 50px;&#39;>";
        echo "<span style=&#39;margin-left: 20px;font-size: 18px;&#39;>";
        print_r($data);
        echo "</span>";
        echo "
";         die;     }     echo "
";
    echo "<br /><br /><br /><span style=&#39;margin-left: 20px;font-size: 13px;&#39;>";
    print_r($data);
    echo "</span><br /><br /><br />";
    echo "
";     die; }
2. Rekursive unendliche Klassifizierung (verachten Sie entschieden Müllcode, der Datenbankoperationen in Schleifen oder Rekursion schreibt):
/* @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;
    }
3. Konvertieren Sie ein Objekt in Array
function arrayToObject($arr){
    if(is_array($arr)){
        return (object) array_map(__FUNCTION__, $arr);
    }else{
        return $arr;
    }
}
5. Erzeugen Sie eine eindeutige Bestellnummer
function object2array(&$object) {
    $object =  json_decode( json_encode( $object),true);
    return  $object;
}
6 HashMap und geben Sie das Ergebnis zurück
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;
}
7. Rufen Sie aus dem zweistelligen Array alle Ergebnisse eines bestimmten Felds ab (einschließlich doppelter Ergebnisse)
/**
* 用法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;
}
Rufen Sie beispielsweise alle ID-Werte ab ​​aus den $brandList-Daten :$ids = array_column($brandList,'id'); Deduplizierungsergebnis $ids= array_unique(array_column($brandList,'id'));

8. Client-Caching-Methode

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);
   } 
}
9. Client-seitige Nicht-Caching-Methode
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");
}
10 Methode (häufiger in der API verwendet) Viele)
 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'];
}

Das obige ist der detaillierte Inhalt von11 gängige PHP-Funktionen zum Teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn