1、json字符串转json对象

$data='[{"user_id":"93","price":"52.50"},{"user_id":"93","price":"52.50"},{"user_id":"93","price":"52.50"}]';
$jsonObj = json_decode($data,true);
var_dump($jsonObj);

输出如下:

array (size=3)0 => array (size=2)'user_id' => string '93' (length=2)'price' => string '52.50' (length=5)1 => array (size=2)'user_id' => string '93' (length=2)'price' => string '52.50' (length=5)2 => array (size=2)'user_id' => string '93' (length=2)'price' => string '52.50' (length=5)

这种输出方法与下面的一样:

 $sql = "SELECT * " ."FROM goods WHERE is_hot = 1";$row = $GLOBALS['db']->getAll($sql);var_dump($row);

输出如下:

array (size=10)0 => array (size=52)'goods_id' => string '1089' (length=4)'cat_id' => string '310' (length=3)'goods_sn' => string 'ECS001201' (length=9)'goods_name' => string '喇叭袖中长上衣夏季短袖T恤打底裙' (length=86)1 => array (size=52)'goods_id' => string '1099' (length=4)'cat_id' => string '336' (length=3)'goods_sn' => string 'ESCOO1105' (length=9)'goods_name' => string '榄油菜籽油玉米植物调和油商超同款' (length=86)2 => array (size=52)'goods_id' => string '1110' (length=4)'cat_id' => string '336' (length=3)'goods_sn' => string 'ECS001110' (length=9)'goods_name' => string '自榨菜油5l食用油非转基因粮油' (length=88)

 2、怎样保存JSON字符串?怎样添加或删除一个JSON字符串

//定义一个数组
$allowArr=array();
//把从数据库库中获取的[{"user_id":"93","user_name":"james","price":"88"},{"user_id":"293","user_name":"139335","price":"52.50"}]字符串转换为数组对象
$allowMemberArr=json_decode($allowMember); //这里注意如果使用的是$allowMemberArr=json_decode($allowMember,true);遍历取值的时候要用$row['user_id'],而不是$row->user_id
//遍历并添加到数组行
foreach ($allowMemberArr as $key=>$row) {$allowArr[] = array('user_id' => $row->user_id, 'user_name' => $row->user_name, 'price' => $row->price);
}
//添加一个数组行
$allowArr[]=array('user_id'=>$user_id,'user_name'=>$user_name,'price'=>$price);
//把所有已经添加的数组行转换为JSON字符串,然后就可以保存了(JSON_UNESCAPED_UNICODE 防止中文乱码)
$jsonString =json_encode($allowArr,JSON_UNESCAPED_UNICODE);

删除其中一个数组行也可以用遍历判断进行去除

$allowArr=array();$allowMemberArr=json_decode($allowMember);foreach ($allowMemberArr as $key=>$row){if($row->user_id!=$userId){$allowArr[]=array('user_id'=>$row->user_id,'user_name'=>$row->user_name,'price'=>$row->price);}}

 3、在数组中判断某个值是否存在

in_array(value,array,type)

该函数的作用是在数组array中搜索指定的value值,type是可选参数,如果设置该参数为 true ,则检查搜索的数据与数组的值的类型是否相同,即恒等于(区分大小写)。

//如果按JSON来说,解决的形如:["Peter", "Joe", "Glenn", "Cleveland"]方式
$people = array("Peter", "Joe", "Glenn", "Cleveland");
if(in_array("Glenn",$people)){echo "Match found";
}else{echo "Match not found";
}输出:
Match found
//与下面这种方式是一样的,如:$arrStr='["20","60","55"]';这种类型的字符串,如果用它进行比较需要转换为数组:$arr=$json->decode($_GET['ids']);这种方法可以解决如:go.php?act=drop_group_users&ids=["287","294","302"]
if(in_array("60",$arr)){echo "Match found";
}else{echo "Match not found";
}

array_key_exists(key,array)

该函数是判断某个数组array中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。

提示:请记住,如果您指定数组的时候省略了键名,将会生成从 0 开始并且每个键值对应以 1 递增的整数键名

//如果按JSON来说,解决的形如:{"a":"Dog","b":“Cat"}方式
$a=array("a"=>"Dog","b"=>"Cat");
if(array_key_exists("a",$a)){
echo "Key exists!";
}else{
echo "Key does not exist!";
}输出:Key exists!

array_search(value,array,strict)

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,则返回匹配该元素所对应的键名。如果没找到,则返回 false。注意在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。同样如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

$a=array("a"=>"Dog","b"=>"Cat","c"=>5,"d"=>"5");
echo array_search("Dog",$a);
echo array_search("5",$a);

输出:
ad

转载于:https://www.cnblogs.com/firstcsharp/p/10698472.html

PHP中一些常用知识点相关推荐

  1. 【华为OD机试真题 JAVA】算法中的常用知识点

    为大家准备了算法中常用的一些重要知识点 String 字符串         IndexOf():返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这                     ...

  2. ES6中的常用知识点总结

    1.let 和 const ES5 只有全局作用域和函数作用域,没有块级作用域,ES6中新增了let命令和const命令用于声明变量,且类似于C+.Java等语言是块级作用域.const声明一个只读的 ...

  3. html中css常用知识点

    文章目录 **::before和::after清除浮动的固定格式(前后格式互不影响)** Div内图片填充 **a标签的应用及样式:** 图片热点:map必须和img一起使用 **背景颜色渐变:** ...

  4. list python 访问 键值对_基础|Python常用知识点汇总(中)

    字符串字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串.1.创建字符串 str1 = 'Hello World!' str2 = "Hello W ...

  5. javaScript常用知识点有哪些

    javaScript常用知识点有哪些 一.总结 一句话总结:int = ~~myVar, // to integer | 是二进制或, x|0 永远等于x:^为异或,同0异1,所以 x^0 还是永远等 ...

  6. ES6常用知识点概述

    前言 国庆假期已过一半,来篇干货压压惊. ES6,并不是一个新鲜的东西,ES7.ES8已经赶脚了.但是,东西不在于新,而在于总结.每个学前端的人,身边也必定有本阮老师的<ES6标准入门>或 ...

  7. matplotlib一些常用知识点的整理,

    本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 强烈推荐ipython 无论你工作在什么项目上,IPython都是值得推荐的.利用ipython --pylab,可以进入Py ...

  8. oracle 常用知识点整理

    转 :  oracle 常用知识点 原文链接:http://blog.csdn.net/weijiaxiaobao/article/details/51323573 Oracle 是一个庞大的系统,里 ...

  9. html内置时间对象,JavaScript中的常用事件,以及内置对象详解

    原标题:JavaScript中的常用事件,以及内置对象详解 今天是刘小爱自学Java的第81天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 学前端有一个非常权威的组织,也就是w3c,其有个专 ...

最新文章

  1. 整理收集49条JQuery代码小结
  2. Python逻辑运算符:if and
  3. 破译。字符串匹配。HOJ1548 Crypt Kicker II。
  4. linux i2c adapter 增加设备_LINUX设备驱动模型分析之四 设备模块相关(DEVICE)接口分析...
  5. java生成验证码SWT_Java SWT Lable框中显示图片验证码
  6. sqlserver数据库原理
  7. Linux之DNS配置及案例
  8. 我把朋友圈关掉了235天
  9. 浅析busybox如何集成到openwrt
  10. 行测题相关,在线测评(图形找规律。逻辑思维)
  11. 无线扫码枪 服务器查询异常,无线扫描枪常见问题及解决方法
  12. go中使用protobuf
  13. Java的加减乘除方法
  14. 新增数学与人工智能学部,考数据结构!齐鲁工业大学(山东省科学院)计算机考研...
  15. 前端——js关闭页面方法
  16. hdu 5148 Cities(树形背包)
  17. python爬虫之获取资源----urllib,requests
  18. android 缺少模拟器,Android模拟器缺少硬件配置文件(示例代码)
  19. DID:仅有几个实验组样本的倍分法(双重差分)
  20. 图像边缘检测与图像梯度的概念

热门文章

  1. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
  2. 每天一道LeetCode-----回文链表
  3. internal compiler error: Killed (program cc1plus)
  4. iOS Hacker Keychain相关The executable was signed with invalid entitlements
  5. 一个Lex/Yacc完整的示例(可使用C++)
  6. POJ 3061 -- Subsequence(二分)
  7. html中的盒子设置时间设置,CSS中的间距设置与盒子模型
  8. python 求一个矩阵的距离矩阵的方法:
  9. 局部静态变量Static详解
  10. 计组-总线操作和定时