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实现维护文件代码
Jun 14 PHP
php代码把全角数字转为半角数字
Dec 10 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
PHP可变函数的使用详解
Jun 14 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
PHP系统命令函数使用分析
Jul 05 PHP
PHP比你想象的好得多
Nov 27 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
PHP异常处理Exception类
Dec 11 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 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中使用unset销毁变量并内存释放问题
2012/07/05 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
深入理解js中this的用法
2016/05/28 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
用Python逐行分析文件方法
2019/01/28 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
python基于opencv实现人脸识别
2021/01/04 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
业绩考核岗位职责
2014/02/01 职场文书
三峡大坝导游词
2015/01/31 职场文书