一.数组的分类与定义

分类:

1.索引数组  $array = array(1,2,3,4,5);

2.关联数组  $array=array(1=>"aa","bb"=>2);

定义:

1.直接为数组元素赋值即可声明数组

<?php
$countact1[0]=1;
$countact1[1]="高某";
$countact1[2]="A公司";
$countact1[3]="北京市";
$countact1[4]="(010)987654321";
$countact1[5]="gao@brophp.com";

  

2.使用array()函数声明数组

$contact = array(1,"高某","A公司","北京市","(010)9876554321","gao@brophp.com");

二.取值

1. 索引数组取值:

$array[0] ;    //用索引号来取值

2.关联数组取值:

$array["bb"];   //用key取值

三.遍历数组

1.for循环

//for循环遍历,针对于索引数组,不能遍历关联数组
for($i=0;$i<count($attr);$i++)
{
echo $attr[$i]."<br>";
}

2.foreach

foreach($array as $value)

foreach($array1 as $key => $value)

//foreach遍历,可以遍历索引数组和关联数组
foreach($attr as $value)
{
echo $value."<br>";
} foreach($attr as $key=>$value)
{
echo $key."=>".$value."<br>";
}

3.each()函数

返回数组中当前的键/值对并将数组指针向前移动一步

reset()  将指针重置第一

//each()函数,取数组里面的某一个元素,依次向下取值,将该元素以数组的形式返回
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>--------------------------";
//将指针复位,指向第一个元素
reset($attr);
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>";
print_r(each($attr));

4.list()函数

从数组中取值赋给一组变量

//list()函数
list($a,$b,$c,$e,$f) = $attr;
echo $a;
echo $b;
echo $c;
echo $e;
echo $f;

5.each()和list()结合

while(list($key,$value) = each($arr))

//用each()和list()函数遍历数组,索引数组和关联数组都可以
list($key,$value) = each($attr);
echo $key."=>".$value;
list($key,$value) = each($attr);
echo $key."=>".$value; while(list($key,$value) = each($attr))
{
echo $key."=>".$value."<br>";
}

6.使用指针

取得目前指针位置的内容资料 current()

取得目前指针位置的索引值 key()

将数组的内部指针倒回一位 prev()

将数组的内部指针向前移动一位 next()

将数组的内部指针指向最后一个单元 end()

将数组的内部指针指向第一个单元 reset()

$attr = array("one"=>10,"2"=>"aa","three"=>20);

    echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
next($attr); //将指针向下移动
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
prev($attr); //将指针向上移动
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
end($attr); //将指针指向最后一个元素
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
reset($attr); //将指针复位
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";

7.预定义数组

声明为全局变量 global

引用全局作用域中可用的全局变量 $GLOBALS

服务器和执行环境信息 $_SERVER

环境变量 $_ENV

HTTP GET 变量 $_GET
HTTP POST 变量 $_POST

HTTP Request 变量 $_REQUEST

HTTP 文件上传变量 $_FILES

Session 变量 $_SESSION

HTTP Cookies $_COOKIE

php的数组与数据结构的更多相关文章

  1. php数组·的方法-数组与数据结构

    /*数组与数据结构*/ //shuffle() 随机打乱数组 //array_push() 数组末尾添加元素 //array_pop() 数组末尾删除元素 //array_shift() 数组首位删除 ...

  2. PHP08 数组和数据结构

    学习要点 数组的分类 数组的定义 数组的遍历 预定义数组 数组的相关处理函数 PHP操作数组需要注意的细节 数组的分类 关于PHP数组 由于PHP是弱类型的编程语言,所以PHP数组中的数组变量可以存储 ...

  3. 5_PHP数组_3_数组处理函数及其应用_8_数组与数据结构

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组与数据结构 1. array_push() 函数 程序: <?php $stack = array(&q ...

  4. 一篇文章让你了解动态数组的数据结构的实现过程(Java 实现)

    目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类 ...

  5. PHP——数组和数据结构

    <body> <?php $arr[0]=5;//赋值定义 $arr[1]="aa"; print_r($arr); echo "<br /> ...

  6. PHP数组和数据结构(下)未完。。。。

    1.数组的遍历 (1)each(): 接受一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置 键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0,1,k ...

  7. PHP数组和数据结构(上)

    1.数组的声明 两种方法: 直接给数组元素赋值 使用array()函数声明 说明: (1)索引数组的下标可以是非连续的值,只要在初始化时指定非连续的下标值即可 如果指定的下标值已经声明过,则属于对变量 ...

  8. 算法求解中的变量、数组与数据结构(STL 中的容器)

    本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...

  9. 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>

    <?php $array = array( "Hello", // Level 1 array( "World" // Level 2 ), array( ...

随机推荐

  1. 双心ping GUI工具1.0

    双心ping GUI工具1.0该软件利用WindowsAPI提供了图形界面的ping程序,同时还可以调用DOS下的ping命令.ping成功后自动加入网址列表框及同目录下的列表文件Pinglist.i ...

  2. 串行通讯之UARTLoopback

    目录 第1章串行通讯之UARTLoopback    2 1 USB转串口    2 2 USB Accessory    2 3 连入手机    3 4 代码改进    4 5 打开串口    4 ...

  3. robot API笔记6

    robot.libraries 计划举办机器人框架标准测试库. 图书馆是主要用于外部的测试数据,但是他们可以 也使用自定义测试库是否有必要. 特别是 的内装式 图书馆通常是有用的 当需要与框架. 因为 ...

  4. robot API笔记2

    robot.conf 设计方案 实现设置测试执行和输出处理. 这个方案实现了 RobotSettings 和 RebotSettings 内部使用的类 该框架. 不应该有这些类需要使用外部.这个包可以 ...

  5. hdu----(4521)小明系列问题——小明序列

    小明系列问题——小明序列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  6. hdu-----(1179)Ollivanders: Makers of Fine Wands since 382 BC.(二分匹配)

    Ollivanders: Makers of Fine Wands since 382 BC. Time Limit: 2000/1000 MS (Java/Others)    Memory Lim ...

  7. dubug

    1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ============================= 作用域 功能 快捷键 全局 ...

  8. 微软MVP社区夏日巡讲北京站 7月13日星期六 微软北京望京Office

    微软MVP社区夏日巡讲 开营啦 时间: 7月13日星期六 地点: 微软北京望京Office 报名方式:请看下图宣传海报 微软最有价值专家联合微软云创新中心专家为您呈现精彩的Windows 应用开发和W ...

  9. 一个Java递归程序

    先来没事搜了一些面试题来做,其中一道:输入一个整数,求这个整数中每位数字相加的和? 思考:1.如何或得每一位数:假如是1234,   1234%10=4,得到个位:(1234/10)%10=3得到十位 ...

  10. 在eclipse导入项目的步骤【转】

    1. Import 2. Next 3. 确定  选中copy projects into workspace    Finish 这样项目就导入进来了. 4.导入jar包 Configure Bui ...