PHP数组实例详解

作为一名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数组的实例详解,希望对大家有所帮助。

(0)

相关推荐

  • PHP递归遍历多维数组实现无限分类的方法

    本文实例讲述了PHP递归遍历多维数组实现无限分类的方法.分享给大家供大家参考,具体如下: <?php //$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国','img'=>'52091199'); $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国')

  • php数组分页实现方法

    本文实例讲述了php数组分页实现方法.分享给大家供大家参考,具体如下: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-10' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-09' ), array( 'clicks'

  • 学习PHP的数组总结【经验】

    PHP有很多关于数组的函数,方便数组操作. 定义: 数组每个实体包含两个项:key和value,可以通过查询键来获取其相应的值.这些键可以是数值(numerical)键或关联(associative)键.数值键与值没有真正的联系,它们只是值在数组中的位置. PHP提供了很多遍历数组的方法,无法使用关联键还是数值键,都依赖于一种称为数组指针的特性. 创建数组 PHP不需要在创建数组时指定其大小,因为PHP是一种松散的语言,所以不需要在使用数组前先行声明.尽管没有限制,PHP仍提供了正式和非正式的数

  • php简单实现数组分页的方法

    本文实例讲述了php简单实现数组分页的方法.分享给大家供大家参考,具体如下: 首先学东西  要多看手册 用php自带的函数  可以解决一些难解的问题 <?php /** * Created by JetBrains PhpStorm. * User: Administrator * Date: 13-6-11 * Time: 上午11:43 * To change this template use File | Settings | File Templates. */ header("

  • PHP预定义变量9大超全局数组用法详解

    1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息.根据服务器不同,$_SERVER中的变量值和变量个数会有差别,不过一般都可以找到CGI1.1规范中定义的变量.其中包括: $_SERVER['HTTP_REFERER']; 引导用户到达当前位置的页面的URL : $_SERVER['REMOTE_ADDR']; 客户IP地址 : $_SERVER['REQUEST_URI']; URL的路径部分.如果URL是 [ur

  • PHP中常用的数组操作方法笔记整理

    概述 要访问一个变量的内容,可以直接使用其名称.如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容. 像其他变量一样,使用运算符=可以改变数组元素的内容.数组单元可以通过 array[key] 语法来访问. 数组的基本操作 php定义数组: <?php $array = array(); $array["key"] = "values"; ?> 在PHP中声明数组的方式主要有两种: 1.用array()函数声明数组, 2.直接为数组元

  • php数组冒泡排序算法实例

    本文实例讲述了php数组冒泡排序算法.分享给大家供大家参考,具体如下: <?php /*@冒泡排序算法 */ $array=array(5,45,22,11,32,28,35,56,17,21,92); $len=count($array);//计算数组长度 for($i=0;$i<$len-1;$i++){//需要比较$len-1轮,每一轮需要比较$len-1次 for($j=0;$j<$len-1;$j++){//需要比较$len-1次,因为循环到最后一个数时,后面没有数可以比较了,

  • php 数组随机取值的简单实例

    array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1. array_rand -- 从数组中随机取出一个或多个单元 mixed array_rand ( array input [, int num_req]) array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指

  • PHP处理数组和XML之间的互相转换

    在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将数据表数据以XML格式提供给第三方等等应用. 本文我们将简单介绍如何使用PHP处理数组和XML之间的互相转换. 源码下载:PHP数组与XML之间的转换 PHP将数组转换成XML  PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如: func

  • php求数组全排列,元素所有组合的方法

    本文实例讲述了php求数组全排列,元素所有组合的方法.分享给大家供大家参考,具体如下: <?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //输出第

随机推荐