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 相关文章推荐
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
Yii2数据库操作常用方法小结
May 04 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
PHP实现简单日历类编写
Aug 28 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 PHP
浅谈如何提高PHP代码的质量
May 28 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
学习使用PHP数组
2006/10/09 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
Pycharm学习教程(1) 定制外观
2017/05/02 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
python用requests实现http请求代码实例
2019/10/31 Python
python:动态路由的Flask程序代码
2019/11/22 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
高中的自我鉴定
2013/12/16 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
停课通知书
2015/04/24 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
经典爱情感言
2015/08/03 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang