zoukankan      html  css  js  c++  java
  • 20141225 数组二

    数组内存分析

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

    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

  • 相关阅读:
    Android中的Prelink技术
    Android 性能分析工具之 ARM Streamline
    Android之Systrace
    学习资源收藏夹
    Linux利器之perf(火焰图)
    Linux程序Segmentation fault (core dumped)
    C++编译器、链接器工作原理
    react使用redux
    Mac更新node版本和npm版本
    Nuxt引入axios;AXIOS的模块化封装
  • 原文地址:https://www.cnblogs.com/lifushan/p/6430350.html
Copyright © 2011-2022 走看看