php编写数据接口,供安卓与ios使用(一维数组与二维数组都通用)
来源:互联网 发布:宿州市淘宝运营招聘 编辑:程序博客网 时间:2024/05/24 04:20
本人和我们ios和安卓吵架实在吵得烦,每天因为数据格式,还有里面的关键字吵架,数据字段改来改去的改的心烦,于是我写了一个函数,这个函数的作用就是一维数组与二维数组调用我这个函数就能转化app所使用的数据 ,并且已经经过测试
1、数据不能有空
2、value全部为字符串
3、不能有安卓与ios中的关键字
4、全部返回为json数据
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
//使用方法
public function demo()
{
//查询数据库数据
$admin = M('admin');
$data = $admin->select();
$json = $this->api_rule($data,'数据查询成功');
echo $json;
}
/**
* php编写app接口的函数封装
*
* @param string $data [从数据库中所查出的数据]
* @param string $message [接口的提示信息,解释状态码所使用]
* @param integer $code [状态码]
* @return [type] [返回json数据类型]
* 接口主要实现了value不为空
* 并且统一将类型转化成字符串
* 将安卓与ios中的关键字进行key的转化,如果是系统关键字,那么我将key添加尾缀 _api进行数组重组
* 一维数组与二维数组通用
*/
public function api_rule($data='',$message='成功',$code=1)
{
$all_data=array(
'code'=>$code,
'message'=>$message,
);
//数组校验(目的是判断数组几维数组)
if(!is_array($data)){
echo "你所传递的数据并不是数组,请自行改变数据格式"; exit(0);
}
//判断是否是数组,并且数组是否大于三维数组
foreach ($data as $x => $y)
{
if(is_array($y))
{
foreach ($y as $x1 => $y1)
{
if(is_array($y1))
{
echo "函数中不能使用三维以上数组";exit(0);
}
}
}
}
//如果数据不为空的情况下所执行以下代码
if ($data!=='') {
// app 禁止使用和为了统一字段做的判断,ios的字典中不识别的关键字
$reserved_words=array('id','title','price','product_title','product_id','product_category','product_number');
foreach ($reserved_words as $k => $v)
{
foreach ($data as $ko => $ko_value)
{
if(is_array($ko_value))
{
if (array_key_exists($v, $ko_value))
{
$keys = $v.""."_api";
//取出数组中所有的key值
$keyss = array_keys($ko_value);
$ko_value[$keys]=$ko_value[$v];
unset($ko_value[$v]);
$data[]=$ko_value;
array_splice($data,0,1);
}
}else{
//检测我数组的key是否存在于这些关键字当中
if (array_key_exists($v, $data))
{
$keys = $v.""."_api";
$data[$keys]=$data[$v];
//取出数组中所有的key值
$keyss = array_keys($data);
$index = array_search($v, $keyss);
if($index !== FALSE){
array_splice($data, $index, 1);
}
}
}
}
}
foreach ($data as $key => $value)
{
if(is_array($value))
{
foreach ($value as $key12 => $value12)
{
if(!is_string($value12))
{
$data[$key][$key12]=strval($value12);
}
//如果我的value是空的情况下,赋予默认值 空
if(empty($value12))
{
$data[$key][$key12]="空";
}
}
}else{
if(!is_string($value))
{
$data[$key]=strval($value);
}
//如果我的value是空的情况下,赋予默认值 空
if(empty($value))
{
$data[$key]="空";
}
}
//如果我的value不是字符串类型,我强转成字符串类型
}
$all_data['data']=$data;
}
// 如果是ajax或者app访问;则返回json数据 pc访问直接p出来
return json_encode($all_data);
exit(0);
}
}
- php编写数据接口,供安卓与ios使用(一维数组与二维数组都通用)
- php 数组去重 (一维数组与二维数组)
- php端使用二维数组与iOS进行Json通讯
- php端使用二维数组与iOS进行Json通讯
- 一维数组与二维数组
- 一维数组与二维数组
- 一维数组与二维数组
- 一维与二维动态数组创建
- JAVA数组(一维与二维):
- 指针与一维、二维数组
- 一维与二维树状数组
- 三维数组的动态分配与回收(一维、二维都有)
- 字符串分割成一维数组、二维数组,一维数组与二维数组之间的转换
- C语言指针与二维数组(二维数组与一维数组关系)
- PHP 一维数组转二维数组
- PHP一维数组、二维数组排序
- PHP二维数组变成一维数组
- 一维数组与二维数组互转
- NOIP 2016 换教室 (期望DP)
- 测试文件:打印 gsl opencv
- Java零碎知识点(二)
- Submission Details
- 11月8日笔记练习以及心得。
- php编写数据接口,供安卓与ios使用(一维数组与二维数组都通用)
- SpringBoot 使用JPA操作数据库
- C#语言实现《学生成绩管理系统》
- ImagLoader基础加载
- 创建字体信息登陆界面
- 输入/输出学生的信息
- STL简介
- Linux-lvm(逻辑卷管理器)
- switch 根据键盘录入成绩 显示分数及判断等级(第一次)