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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
Email+URL的判断和自动转换函数
Oct 09 PHP
上传多个文件的PHP脚本
Nov 26 PHP
php正则表达式(regar expression)
Sep 10 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
PHP实现变色验证码实例
Jan 06 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
php获取ip及网址的简单方法(必看)
Apr 01 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简单构造json多维数组的方法示例
2017/06/08 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
javascript闭包入门示例
2014/04/30 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue实现购物车案例
2020/05/30 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python用户管理系统
2018/03/13 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Python线程之定位与销毁的实现
2019/02/17 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
基于python实现操作git过程代码解析
2020/07/27 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
研究生自荐信
2013/10/09 职场文书
自我推荐书
2013/12/04 职场文书
经销商培训邀请函
2014/01/21 职场文书
村委会换届选举方案
2014/05/03 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
营业用房租赁协议书
2014/11/26 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python