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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
smarty section简介与用法分析
Oct 03 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
php多文件上传下载示例分享
Feb 20 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 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中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python 统计字数的思路详解
2018/05/08 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
税务干部鉴定材料
2014/02/11 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
中国世界遗产导游词
2015/02/13 职场文书
公路施工安全责任书
2015/05/08 职场文书
公司财务管理制度
2015/08/04 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL