山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组内存分析

数组在内存中的存在形式。

wps4FF2.tmp

foreach内存分析

wps5002.tmp

php二维数组

php中只有一维数组,没有理论上的二维数组。

php的二维数组:指的是在数组元素值出现的位置上,刚好又出现了一个数组

$arr = array( 0 =>array(0 =>1),1 => array(0 => 2))

$arr[0] //访问一维数组元素

$arr[0][0]//访问二维数组元素

wps5003.tmp

遍历二维数组

通常二维数组都是进行一层foreach遍历,一维数组是不需要遍历的,直接通过下标访问。

wps5014.tmp

each函数

each是一个专门对数组进行数据获取的函数,获取当前数组指针所指向的元素的数据,并将当前指针所指向的数据,通过一个混合数组返回,返回4个元素,将原来的键名和键值各生成一个索引(0和1)和一个关联(key和value)

wps5015.tmp

each操作完数组元素之后一定会将数组指针下移。

wps5016.tmp

echo如果对应操作的数组指针已经移出数组,那么就会返回false

wps5027.tmp

证明foreach是通过指针对数据进行操作

wps5028.tmp

each遍历数组

wps5038.tmp

list结构

list 是一种能够从别的数组中获取指定的元素的结构,会将获取到的数据挨个的分配到自己指定的变量当中

语法

list(变量1,变量2….) = 数组(元素1,元素2…) =====è 变量1 = 元素1;变量2 = 元素2….

list结构要使用,必须满足以下特点

1. 被获取的数组元素,必须要有索引元素,而且索引必须从0开始,而且索引必须连续顺序递增

2. list结构内的变量不能超过被获取数组中的元素个数(有效元素)

wps5039.tmp

数组函数

key:获取当前数组当前指针所指向的元素的下标

current:获取的当前指针指向元素的数值

wps504A.tmp

next:获取下一个元素的值,并且将指针下移

prev:获取上一个元素的值,并且将指针上移

wps504B.tmp

end :将指针移到数组的最后一个元素,并返回最终指针位置的值

reset:将指针移到数组的第一个元素,返回最终指针位置的值

wps504C.tmp

array_keys:获取一个数组的所有键名,返回一个索引数组

array_values:获取一个数组的所有值,返回一个索引数组

wps505C.tmp

使用函数遍历数组

key,current和next

next或者prev如果将指针移出了数组,key得到的是NULL,而current返回的false

wps505D.tmp

一旦数组指针移出数组,那么使用next和prev都不能将指针移回来,只能通过reset和end

wps506E.tmp

函数循环遍历数组

wps506F.tmp

for循环遍历关联数组

wps5070.tmp

作业:

1. 有多少种方式可以遍历数组?每种方式都遍历一次数组。

数据结构模拟函数

数据结构:数据在内存中存在以及处理的方式

栈:先进后出(FILO)

队列:先进先出(FIFO)

以下四个函数:都是对数组本身进行操作

array_shift:从数组的前面弹出元素,得到元素的值

array_unshift:从数组的前面压入元素,得到当前数组元素的个数

array_push:从数组的后面压入元素,得到当前数组元素的个数

array_pop:从数组的后面弹出元素,获得元素的值

模拟栈

栈:出栈和入栈(压栈)

出栈:array_pop

入栈:array_push

wps5081.tmp

模拟队列

入队:array_push

出队:array_shift

wps5082.tmp

posted on 2017-02-22 18:12  山山未迟  阅读(117)  评论(0编辑  收藏  举报