分类: Apache/php/Mysql
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 数组转json 防止汉字转成unicode
//数组 键值转 unicode function array_urlencode($data){ if(is_array($data)){ foreach($data as $key=>$val){ $data[$key] = _urlencode($val); } return $data; }else { return urlencode($data); } } //调用 $str=urldecode(json_encode ( array_urlencode($arr)) );
php 配合魔法函数 返回上级
dirname(DIR)
php从json文件获取数据的方法
$str=file_get_contents(C("WEB_NAME")."/Public/Uploads/testdata.json"); //去除换行符 $str=str_replace(PHP_EOL,'',$str); $d=json_decode($str,true); if(!$d){ $this->sendmsg("","请注意原json格式是否正确",1); } return $d;
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";
php file_get_contents json去除换行符 返回null错误的原因
$str=file_get_contents(C("WEB_NAME")."/Public/Uploads/testdata.json"); //去除换行符 $str=str_replace(PHP_EOL,'',$str); $d=json_decode($str,true); if(!$d){ //如果返回null,有可能是原json对象或数组结尾是逗号,这在json是错误语法 $this->sendmsg("","请注意原json格式是否正确",1); } return $d;