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 相关文章推荐
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
php 强制下载文件实现代码
Oct 28 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
php简单实现数组分页的方法
Apr 30 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
PHP fprintf()函数用法讲解
Feb 16 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
twig模板常用语句实例小结
2016/02/04 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
window.ActiveXObject使用说明
2010/11/08 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
AngularJS内置指令
2015/02/04 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
Python装饰器decorator用法实例
2014/11/10 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
施工人员岗位职责
2013/12/12 职场文书
骨干教师考核方案
2014/05/09 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
应届生自荐书
2014/06/23 职场文书
超市创意活动方案
2014/08/15 职场文书
黑白记忆观后感
2015/06/18 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书