PHP Array用法大全
2019-05-08 07:32:01来源:博客园 阅读 ()
目录
- array是什么
- array运算符
- 基本操作
- 创建array
- 遍历array
- 创建K=V类型array
- 删
- 改
- 查
- each( )
- list( )
array是什么
array是数据结构中的一种,在Web场景中使用得较多。了解好array的使用方法,能提升代码阅读的效率。
array通过辨认角标的方式可以分为两类array:
- 角标为int数字的array
- 角标为string数值array
两种的不同的array各自也有不同的操作方式,下文中角标为int数字的array简称为角标array,角标为string数值array简称为KV array;
如下内容大部分参考:https://segmentfault.com/a/1190000002723270#articleHeader9
array运算符
要访问一个变量的内容,可以直接使用其名称。
$a=996;
如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。
$name_array=array("zhangsan","lisi");
像其他变量一样,使用运算符=
可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。
arrary运算符:
在web场景中arrary运算符,基本很少使用。至少我个人是这样,所以知道array能像变量一样使用运算符操作即可,用到在去查。
基本操作
CURD
array 函数大全:http://www.w3school.com.cn/php/php_ref_array.asp
创建array
在PHP中声明数组的方式主要有两种:
1.用array()函数声明数组:
# 1
$array = array();
$array["key"] = "values";
#2
$users = array('phone','computer','dos','linux');
echo $users;//只会打印出数据类型Array
print_r($users);//Array ( [0] => phone [1] => computer [2] => dos [3] => linux )
2.用range()函数创建一个角标数组:
$numbers = range(1,5);//创建一个包含指定范围的数组
print_r($numbers);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
遍历array
//通过循环来显示数组里所有的值
for($i = 0 ;$i < 5;$i++){
echo $users[$i];
echo '<br/>';
}
//通过count/sizeof统计数组中单元数目或对象中的属性个数
for($i = 0; $i < count($users);$i++){
echo $users[$i];
echo '<br/>';
}
//还可以通过foreach循环来遍历数组,这种好处在于不需要考虑key
foreach($users as $value){
echo $value.'<br/>';//点号为字符串连接符号
}
//foreach循环遍历 $key => $value;$key和$value是变量名,可以自行设置
foreach($users as $key => $value){
echo $key.'<br/>';//输出键
}
创建K=V类型array
从php5.4 起可以使用短数组定义语法,用 [] 替代 array()。有点类似于javascript中数组的定义;
//创建自定义键的数组
$ceo = array('apple'=>'jobs','microsoft'=>'Nadella','Larry Page','Eric');
//如果不去声明元素的key,它会从零开始
print_r($ceo);//Array ( [apple] => jobs [microsoft] => Nadella [0] => Larry Page [1] => Eric )
echo $ceo['apple']; //jobs
//php5.4起的用法
$array = [
"foo" => "bar",
"bar" => "foo",
];
print_r($array); //Array ( [foo] => bar [bar] => foo )
删
通过unset( ) 填入角标([0]),删除array中的某个元素:
$array = array(0 => "a", 1 => "b", 2 => "c");
unset($array[1]);
通过array_splice() 填入角标([0]),删除array中的某个元素:
如果你使用 array_splice() 方法,数组的键会自动重新建立索引, 但对关联性的数组不起作用,需要使用 array_values() 将键转换为数字键。
$array = array(0 => "a", 1 => "b", 2 => "c");
array_splice($array, 1, 1); // 1 到 1步长;
通过array_diff() 方法 填入V,删除array中的某个元素:
$array = array(0 => "a", 1 => "b", 2 => "c");
$array = array_diff($array, ["a", "c"]);
通过array_diff_key() 方法填入K,删除array中的某个元素:
在函数的第二个参数的键值位置输入要删除的键,值不需要,可随意。
$array = array(0 => "a", 1 => "b", 2 => "c");
$array = array_diff_key($array, [0 => "xy", "2" => "xy"]);
改
改就最简单了,只要定位到角标或者K,通过赋值符号就能覆盖原来的值。
$arr['a'] = "apple";
$arr['c'] = "pear";
查
查的方式很多,比如上面说的循环变量 就是查找,在每次遍历到一个新元素的时候,加上自己的判断就是一个查询功能,如果想要优化查询,可以深入数据库结构的排序和查找,后面会出相关文章。
//通过循环来显示数组里所有的值
for($i = 0 ;$i < 5;$i++){
echo $users[$i];
echo '<br/>';
}
//通过count/sizeof统计数组中单元数目或对象中的属性个数
for($i = 0; $i < count($users);$i++){
echo $users[$i];
echo '<br/>';
}
//还可以通过foreach循环来遍历数组,这种好处在于不需要考虑key
foreach($users as $value){
echo $value.'<br/>';//点号为字符串连接符号
}
//foreach循环遍历 $key => $value;$key和$value是变量名,可以自行设置
foreach($users as $key => $value){
echo $key.'<br/>';//输出键
}
each( )
each的指针指向第一个键值对,并返回第一个数组元素,获取其键值对,并包装成新数组
$users = array('trigkit4'=>22,'mike'=>20,'john'=>30);
//print_r(each($users));//Array ( [1] => 22 [value] => 22 [0] => trigkit4 [key] => trigkit4 )
//相当于:$a = array([0]=>trigkit4,[1]=>22,[value]=>22,[key]=>trigkit4);
$a = each($users);//each把原来的数组的第一个元素拿出来包装成新数组后赋值给$a
echo $a[0];//trigkit4
echo "<br/>";
echo $a[1];//22
echo "<br/>";
var_dump($a);
输出:
trigkit4
22
array(4) { [1]=> int(22) ["value"]=> int(22) [0]=> string(8) "trigkit4" ["key"]=> string(8) "trigkit4" }
应用场景:
暂时没想到,等想到在写进来吧。
list( )
待续...
原文链接:https://www.cnblogs.com/mysticbinary/p/10822098.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:PHP文件注释标记的介绍
下一篇:Laravel配置全局公共函数
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash