php 我写的垃圾工具函数 data_fromat

<

pre class="lang:php decode:true">
/**
* data_fromat格式化数据
*@param $origin 原始数组 默认字段
*@param array $field_default 需要提取作为第一级的字段的键 (这个数组第一个参数应该是id这种唯一值)
*
*@return 格式化后的数组 店铺-{信息,日期数据}的格式
*@author janing
*/
function data_fromat($origin,$field_default="",){
if(!$field_default||!$origin){return ;}

$temporary=array();
foreach ($origin as $shopIndex => $shopValue) {
$shop_id=$shopValue[$field_default[0]];
if(!isset($temporary[$shop_id])){
$temporary[$shop_id]=array();
foreach ($field_default as $field_index => $field) {
//公共字段插入
$temporary[$shop_id][$field]=$shopValue[$field];
}
//新建每日数据字段
$temporary[$shop_id]['dataPre']=array();
}
//其余字段插入 dataPre
$dataPreChild=array();
foreach ($shopValue as $field_index => $field) {
if(in_array($field_index,$field_default) ){continue;}
$dataPreChild[$field_index]=$field;
}
array_push($temporary[$shop_id]['dataPre'],$dataPreChild);
}

//对象转数组
$temporary_arr=array();
foreach ($temporary as $key => $value) {
array_push($temporary_arr,$value);
}
//var_dump($temporary_arr);exit;
return $temporary_arr;
}

php 数组按照关键字排序

调用

代码

function array_sort($array, $on, $order=SORT_ASC)
{
    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
            break;
            case SORT_DESC:
                arsort($sortable_array);
            break;
        }

        foreach ($sortable_array as $k => $v) {
                    array_push($new_array,$array[$k);
        }
    }

    return $new_array;
}

php 保存文件

//保存文件
            //$_SERVER['DOCUMENT_ROOT']="D:/www/"
      //$_SERVER["SCRIPT_NAME"]="/项目名/index.php"
      $www_path=$_SERVER['DOCUMENT_ROOT'];
      $save_path=explode("/",$_SERVER["SCRIPT_NAME"])[1];
      $fp=fopen($www_path.$save_path."/public/data/SalesDay.json","w+");
      fwrite($fp,json_encode($result));
      fclose($fp);

php 二维数组按照关键字排序

//数组按照关键字排序
function array_sort($array, $on, $order=SORT_ASC)
{
    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
            break;
            case SORT_DESC:
                arsort($sortable_array);
            break;
        }

        foreach ($sortable_array as $k => $v) {
            // $new_array[$k] = $array[$k];
            array_push($new_array,$array[$k]);
        }
    }

    return $new_array;

}

php 正则replace

普通字符串替换 str_replace

    $str="1234";
    $result=str_replace("2","",$str);//$result="134"

正则替换 preg_replace

不需要引用原来字符的正则

    $str="12-3-4";
    $result=str_replace("/(\w+)/","GG",$str);//$result="GG-GG-GG"

需要引用原来字符的正则

    $str="12-3-4";
    $result=str_replace("/(\w+)-(\w+)-(\w+)/","${1}-${2}-GG",$str);//$result="12-3-GG";