PHP 数组基本操作方法详解


Posted in PHP onJune 17, 2016

数组的概念

数组(array)是 PHP 中一个非常重要的概念,我们可以把数组看做一系列类似的数据的集合,实际上数组是一个有序图。

PHP 还提供了超过 70 个内建函数来操作数组。

创建数组

使用 array() 语言结构创建数组:

<?php
$arr_age1 = array(18, 20, 25);
// 或者:
$arr_age2 = array("wang"=>18, "li"=>20, "zhang"=>25);
// 空数组:
$arr_age3 =array();
?>

也可以使用数组控制器 [] 来创建数组:

<?php
$arr_age1[] = 18;
$arr_age1[] = 20;
$arr_age1[] = 25;
// 或者:
$arr_age2["wang"] = 18;
$arr_age2["li"] = 20;
$arr_age2["zhang"] = 25;
?>

数组键名与值

数组实体都包含两项:键名和值。

在下面创建数组的例子中:

$arr_age1 = array(18, 20, 25);我们给 $arr_age1 分配了 3 个数组单元(也称元素),其值分别是 18、20 和 25。系统会自动给这 3 个数组单元分配 3 个数字序号,分别为 0、1 和 2。即 $arr_age1 数组的完整结构为:

Array ( [0] => 18 [1] => 20 [2] => 25 ) 这个系统自动分配的序号称为键名,这种键名为数字 ID 的数组称为 索引数组( indexed array )。

当然也可以手动指定键名:

$arr_age1 = array( 0 => 18, 1 => 20, 2 => 25 );

注意:手动指定键名可以不从 0 开始,也可以不用按数字顺序来指定键名。当一个新单元加入数组而没有指定健名时,系统将自动的在现有数组中最大的数字键中加 1 ,作为新单元的键名。

当使用字符串而非数字索引作为键名时,这种数组称为 关联数组( associative array ):

$arr_age2 = array("wang"=>18, "li"=>20, "zhang"=>25);但在 PHP 中,这两种数组没有明显的界限,二者可以混合使用。注意关联数组中对于键名大小写是敏感的。
 

输出数组单元值

可以使用如下方式访问输出数组单元值:

echo $arr_age1[0];        //输出:18
echo $arr_age2["wang"];    //输出:18某些情况下为了调试,可能需要输出整个数组的数据及结构,这时候需要使用 print_r() 或 var_dump() 函数,具体参见PHP print_r 与 var_dump 输出数组

操作数组单元

可以象操作普通变量一样操作数组单元,如:

<?php
$arr_age2 = array("wang"=>18, "li"=>20, "zhang"=>25);
$arr_age2["wang"] = $arr_age2["wang"] + 10;
?>

现在 $arr_age2 为:

Array ( [wang] => 28 [li] => 20 [zhang] => 25 ) 检查一个数组单元是被设定,请使用 isset() 。

销毁数组

使用 unset() 函数来销毁一个数组单元或整个数组:

<?php
unset($arr_age1[0]);
unset($arr_age1);
?>

多维数组

如果数组中的值也是数组时,我们就称这样的数组为递归数组或多维数组。

例子:

<?php
$all = array( "fruits" => array( "a"=>"orange", "b"=>"banana", "c"=>"apple"),
	"ages" => array( 18, 20, 25 )
	);
echo $all["fruits"]["c"];	//输出apple
echo $all["ages"][0];		//输出18
?>

以上就是小编为大家带来的PHP 数组基本操作方法详解全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
学习使用PHP数组
Oct 09 PHP
PHP通用检测函数集合
Nov 25 PHP
安装APACHE
Jan 15 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
yii2安装详细流程
May 23 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 PHP
全面了解PHP中的全局变量
Jun 17 #PHP
浅析PHP7新功能及语法变化总结
Jun 17 #PHP
PHP设计模式之迭代器模式
Jun 17 #PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 #PHP
学习PHP session的传递方式
Jun 15 #PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 #PHP
PHP实现适用于文件内容操作的分页类
Jun 15 #PHP
You might like
PHP使用ActiveMQ实例
2018/02/05 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
js 解决“options为空或不是对象”
2008/12/22 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
如何在python中使用selenium的示例
2017/12/26 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python程序控制语句用法实例分析
2020/01/14 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
本溪水洞导游词
2015/02/11 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
mysql 获取时间方式
2022/03/20 MySQL