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 还是永远等 ...
随机推荐
- LoadRunner录制协议的选择
1.选择协议(提高测试结果的准确性) New Single Protocol Script:单协议脚本,选择一种主协议进行测试 New Multiple Protocol Script:多协议脚本,选 ...
- css3和html5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- goLand工程结构管理
goLand工程结构管理 转 https://www.jianshu.com/p/eb7b1fd7179e 开始之前请确保安装好了 go语言环境并配置好了gopath环境变量 1.创建一个新目录并打 ...
- 生日蛋糕 POJ - 1190 (搜索+剪枝)
7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱.当 ...
- Django之Models(一)
Django之Models(一) 目录 数据库的配置 模型代码与参数解析 ORM对单表的增删改查 查询的补充 数据库配置 django默认支持sqlite,mysql, oracle,postgres ...
- 数据结构之二叉搜索树、AVL自平衡树
前言 最近在帮公司校招~~ 所以来整理一些数据结构方面的知识,这些知识呢,光看一遍理解还是很浅的,看过跟动手做过一遍的同学还是很容易分辨的哟~ 一直觉得数据结构跟算法,就好比金庸小说里的<九阳神 ...
- linux命令基础三
使用cat命令进行文件的纵向合并使用cat命令实现文件的纵向合并: 例如:使用cat命令将baby.age.baby.kg和baby.sex这三个文件纵向合并为baby文件的方法:cat baby.a ...
- Redis自学笔记:3.5入门-集合类型
3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 ...
- cout endl in c++
#include<iostream> using namespace std; int main() { cout<<endl; endl(cout); getchar(); ...
- 2110 ACM Crisis of HDU 母函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2110 题意:分出1/3的价值,有几种可能? 思路:母函数 与之前的题目2079相似,复习笔记再来写代码: ...