PHP中一些常用知识点
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
PHP中一些常用知识点的更多相关文章
- 前端笔试面试中的常用知识点总结(CSS)
1.CSS选择器的优先级!important > 内联 > id选择器 > 类选择器 > 标签选择器多个类选择器叠加(256)之后的优先级大于一个id选择器!importan ...
- Production环境中iptables常用参数配置
production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...
- PHP面向对象中的重要知识点(三)
1. namespace: 和C++中的名字空间很像,作用也一样,都是为了避免在引用较多第三方库时而带来的名字冲突问题.通过名字空间,即便两个class的名称相同,但是因为位于不同的名字空间内,他们仍 ...
- DB2_SQL_常用知识点&实践
DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...
- JAVA常用知识点及面试题总结
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...
- Less常用知识点
上篇文章介绍了如何安装Less,我们将所有东西都写在.less里面,最后通过命令将.less转换成.css文件,就可以放入到项目里用了.今天了解一些less常用知识点. 1.变量:声明两个变量,一个是 ...
- YII2常用知识点总结
YII2常用知识点总结 (一)总结性语句 (1)经常看看yii源码比如vendor\yiisoft\yii2\web这个目录(很重要)下的文件中的方法(这些文件中的公共方法,大致看了下基本上都可以通过 ...
- CSS3常用知识点
CSS3常用知识点 1 css3选择器 1.1 属性选择器 /* E[attr~=val] 表示的一个单独的属性值 这个属性值是以空格分隔的*/ .attr2 a[class~="kawa& ...
- javaScript常用知识点有哪些
javaScript常用知识点有哪些 一.总结 一句话总结:int = ~~myVar, // to integer | 是二进制或, x|0 永远等于x:^为异或,同0异1,所以 x^0 还是永远等 ...
随机推荐
- JavaWeb 之Ubuntu intelliJ 新建maven项目及配置tomcat
一. 破解安装 intelliJ 下载网址:https://www.jetbrains.com/idea/ 破解激活:https://www.cnblogs.com/tanrong/p/7309343 ...
- ubuntu中git
1.在ubuntu中安装git $ sudo apt-get install git git-core 2.配置本机的git $ git config --global user.name " ...
- oracle中查询条件包含null时
不能使用=null或者!=null 应该使用is null和is not null
- poj3311
poj3311我写的第一篇状压dp,调试了好久23333,其实状压就是二进制结合位运算,把整体的状态用二进制来表示,一般是0/1,用没用过或者走没走没走过的问题,其实这种思想在搜索中也有涉及过,与dp ...
- 自定义Map.Entry的Comperator实现字符频率降序排序
leetCode (#451,middle) java实现 class Solution { public String frequencySort(String s) { Map<Charac ...
- jarvis OJ WEB题目writeup
0x00前言 发现一个很好的ctf平台,题目感觉很有趣,学习了一波并记录一下 https://www.jarvisoj.com 0x01 Port51 题目要求是用51端口去访问该网页,注意下,要用具 ...
- ASP.NET MVC不可或缺的部分——DI及其本质工作分析
IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否是单例对象还是每次都生成一个新的对象. DI实现其实很简单,首先设计类来实现接口, ...
- SpringBoot统一处理异常
在springboot项目,报错有着默认的提示,这篇文章介绍一下如何统一处理异常. 新建项目,pom文件如下: <?xml version="1.0" encoding=&q ...
- 数字进度条组件NumberProgressBar
数字进度条组件NumberProgressBar NumberProgressBar是一款数字进度条组件.它不仅可以通过进度条的变化展现进度,还可以通过跟随文字精确表示进度值.开发者可以对进度条进行 ...
- 03爬虫 爬取hfutxc成绩
#-*- coding:utf-8 -*- # -*- coding: utf-8 -*- #encoding:utf-8 import urllib import urllib2 import co ...