分类: 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;
