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 还是永远等 ...
随机推荐
- MySQL高级01
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB. 官网下载地址:http://dev.mysql.com/downloa ...
- 066 基于checkpoint的HA机制实现
1.说明 针对需要恢复的应用场景,提供了HA的的机制 内部实现原理:基于checkpoint的 当程序被kill的时候,下次恢复的时候,会从checkpoint对用的文件中进行数据的恢复 2.HA原理 ...
- 001 Hello Security 的框架搭建
一:STS 1.下载STS 官网:http://spring.io/tools 使用一个干净的STS进行操作学习. 2.jdk检查 3.添加自己的maven 4.使用tomcat 二:新建项目 1.新 ...
- thinkphp验证器
验证器类:$validate=new \think\Validate($rule,$message,$field); 独立验证: //独立验证 $rule=[ 'name' => 'requir ...
- 左连接不能与or否则in连用
select z.sjssny,z.XXSE,z.JXSE,z.nsrsbh, nsr.zgswskfj_dm,nsr.nsrmc,nsr.zgswj_dm,nsr.SSGLY_DM,nsr.nsr ...
- 初窥Java之四
一.条件判断之if判断 语法格式:if(结果为布尔类型的结果值){ 功能执行语句; }else if(结果为布尔类型的结果值){ 功能执行语句; } ....{ }else{ 功能执行语句: } 注意 ...
- 关闭selinux服务
vim /etc/selinux/config 将SELINUX=disabled 执行setenforce 0
- Running Median POJ - 3784 (对顶堆/优先队列 | 链表)
For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After ...
- CodeForces - 893C Rumor【并查集】
<题目链接> 题目大意: 有n个人,其中有m对朋友,现在你有一个秘密你想告诉所有人,第i个人愿意出价a[i]买你的秘密,获得秘密的人会免费告诉它的所有朋友(他朋友的朋友也会免费知道),现在 ...
- ServiceNow在中国还有没有模仿者?
美国版的“ServiceNow”:https://www.servicenow.com 中国版的“ServiceHot” :http://www.itsmcn.com