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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP会话处理的10个函数
Aug 11 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP实现两种排课方式
Jun 26 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
新浪新闻小偷
2006/10/09 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
Yii快速入门经典教程
2015/12/28 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
大学学生会竞选演讲稿
2014/04/25 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
工作收入证明模板
2014/10/10 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
教师求职信怎么写
2015/03/20 职场文书
跳高加油稿
2015/07/21 职场文书
把77A收信机改造成收音机
2022/04/05 无线电