function

php 基础函数应用

Json对象转成php可以识别的Json格式(json_decode可以使用的字符串)

function JsObjToJsonDecodeEnableStr($js_obj_str){
    return preg_replace(["/([a-zA-Z_]+[a-zA-Z0-9_]*)\s*:/", "/:\s*'(.*?)'/"], ['"\1":', ': "\1"'], $js_obj_str);
}

1. stdClass类转array

    /** 
      * stdClass类转array 
      * @param $obj 
      * @return mixed 
      */
    function object_to_array($obj){ 
        $_arr = is_object($obj) ? get_object_vars($obj) : $obj; 
        foreach ($_arr as $key => $val) { 
            $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val; $arr[$key] = $val; 
        } 
        return $arr;
}

2. 中文星期几

/** 
 * 中文星期几 
 * @param $date 
 * @return mixed 
*/
function cnWeek($date){ 
    $arr = array('天','一','二','三','四','五','六'); 
    return $arr[date('w',strtotime($date))];
}

获取客户端真实IP地址

function get_proxy_ip(){

        $arr_ip_header = array(
            'HTTP_CDN_SRC_IP',
            'HTTP_PROXY_CLIENT_IP',
            'HTTP_WL_PROXY_CLIENT_IP',
            'HTTP_CLIENT_IP',
            'HTTP_X_FORWARDED_FOR',
            'REMOTE_ADDR',
        );
        $client_ip = 'unknown';
        foreach ($arr_ip_header as $key)
        {
            if (!empty($_SERVER[$key]) && strtolower($_SERVER[$key]) != 'unknown')
            {
                $client_ip = $_SERVER[$key];
                break;
            }
        }
        return $client_ip;
    }

二位数组转一维数组-array_column()

二维数组去重

function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
    // 判断是否保留一级数组键 (一级数组键可以为非数字)
    if($stkeep) $stArr = array_keys($array2D);
    // 判断是否保留二级数组键 (所有二级数组键必须相同)
    if($ndformat) $ndArr = array_keys(end($array2D));
    //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    foreach ($array2D as $v){
        $v = join(",",$v); 
        $temp[] = $v;
    }
    //去掉重复的字符串,也就是重复的一维数组
    $temp = array_unique($temp); 
    //再将拆开的数组重新组装
    foreach ($temp as $k => $v)
    {
        if($stkeep) $k = $stArr[$k];
        if($ndformat)
        {
            $tempArr = explode(",",$v); 
            foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
        }
        else $output[$k] = explode(",",$v); 
    }
    return $output;
}

二维数组排序

将两个数组合并,并排序

      $data = array_merge($data1,$data2);
      // 取得列的列表
      foreach ($author_hot as $key => $row) {
          $volume[$key]  = $row['id'];
      }
      // 将数据根据 volume 降序排列,把 $data 作为最后一个参数,以通用键排序
      array_multisort($volume, SORT_DESC,$data);

results matching ""

    No results matching ""