作为一名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数组的实例详解,希望对大家有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!