PHP数组实例详解


Posted in PHP onJune 26, 2016

作为一名C++程序员,在转做PHP开发的过程中,对PHP数组产生了一些混淆,与C++数组有相似的地方,也有一些不同,下面就全面地分析一下PHP的数组及其与C++中相应数据类型的区别和联系。

数组的分类:

1、数值数组:也叫索引数组,即以数字(从0 开始)作为数组下标。相当于C++中的vector。

2、关联数组:以字符串作为数组下标。相当于C++中的map。

3、多维数组:数组中每个元素也是一个数组。其子数组中的每个元素也可以是数组。

数组的声明:

1、数值数组

a、如下例子中,会自动分配数字ID键。

$names = array("Peter","Joe","Lily");
b、如下例子中,我们人工分配数字ID键。

$names[0] = "Peter";
$names[1] = "Joe";
$names[2] = "Lily";

可以在脚本中使用这些ID键:

<?php 
$names[0] = "Peter"; 
$names[1] = "Joe"; 
$names[2] = "Lily"; 
echo $names[0]." and ".$names[1]." are ".$names[2]."'s neighbors"; 
/* 何问起 hovertree.com */
?>

2、关联数组:

例子1

$ages = array("Peter"=>32, "Joe"=>30, "Lily"=>28);

例子2

本例与例子1相同,只是另一种创建数组的方法。

$ages["Peter"] = "32"; 
$ages["Joe"] = "30"; 
$ages["Lily"] = "28";

在脚本中使用关联数组:

<?php 
$ages["Peter"] = "32"; 
$ages["Joe"] = "30"; 
$ages["Lily"] = "28"; 
echo "Peter is ".$ages["Peter"]." years old."; 
/* 何问起 hovertree.com */
?>

以上脚本输出:

Peter is 32 years old.

3、多维数组:

在本例中,我们创建了一个带有自动分配数字ID键的多维数组:

$families = array 
{ 
"Griffin"=>array 
{ 
"Peter", 
"Lois", 
"Megan" 
}, 
"Quagmire"=>array 
{ 
"Glenn" 
}, 
"Brown"=>array 
{ 
"Cleveland", 
"Loretta", 
"Junior" 
} 
}; 
echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?";

以上代码输出:

Is Megan a part of the Griffin family?

1、for循环遍历

for循环只能遍历索引数组。

<?php 
$names = array("Peter","Joe","Lily"); 
for($id=0;$id<count($names);++$id) 
{ 
echo $names[$id]; 
} 
?>

2、foreach遍历

即可以遍历索引数组,也可以遍历关联数组

遍历索引数组

foreach(array_expression as $value) 
{ 
循环体; 
} 
遍历关联数组 
foreach(array_expression as $key=>$value) 
{ 
循环体; 
}

A、一维数组遍历

索引数组

<?php 
$contact = array("李某","xx公司","abc@xx.com"); 
foreach($contact as $value) 
{ 
echo $value; 
} 
?> 
<?php 
$contact = array("姓名"=>"李某","公司"=>"xx公司","邮箱"=>"abc@xx.com"); 
foreach($contact as $key=>$value) 
{ 
echo $key.":".$value; 
} 
?>

B、多维数组遍历

<?php 
$wage = array( 
"市场部"=array( 
array(1,"李某","市场经理",8000), 
array(2,"王某","市场专员",5000), 
array(3,"刘某","市场专员",7000) 
), 
"产品部"=array( 
array(1,"李某","产品经理",9000), 
array(2,"王某","产品专员",6000), 
array(3,"刘某","产品专员",5000) 
), 
"账务部"=array( 
array(1,"李某","账务经理",7000), 
array(2,"王某","账务专员",6000), 
array(3,"刘某","账务专员",5000) 
) 
); 
foreach($wage as $section=>$table) 
{ 
echo $section."部门人员如下"; 
foreach($table as $row) 
{ 
foreach($row as $value) 
{ 
echo $value; 
} 
} 
} /* 何问起 hovertree.com */
?>

以上所述是小编给大家介绍的php数组的实例详解,希望对大家有所帮助。

PHP 相关文章推荐
杏林同学录(一)
Oct 09 PHP
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
thinkPHP下ueditor的使用方法详解
Dec 26 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 PHP
PHP Cookie学习笔记
Aug 23 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
php实现算术验证码功能
Dec 05 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
php微信开发之批量生成带参数的二维码
Jun 26 #PHP
php日期操作技巧小结
Jun 25 #PHP
php项目开发中用到的快速排序算法分析
Jun 25 #PHP
php函数传值的引用传递注意事项分析
Jun 25 #PHP
php好代码风格的阶段性总结
Jun 25 #PHP
php编译安装php-amq扩展简明教程
Jun 25 #PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 #PHP
You might like
建立动态的WML站点(一)
2006/10/09 PHP
其他功能
2006/10/09 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
python如何去除字符串中不想要的字符
2020/07/05 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python表达式的优先级详解
2020/02/18 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
岗位职责定义及内容
2013/11/08 职场文书
中药学自荐信
2014/06/15 职场文书
工作检讨书500字
2014/10/19 职场文书
2014年物流工作总结
2014/11/25 职场文书
一般纳税人申请报告
2015/05/18 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技