zoukankan      html  css  js  c++  java
  • php

    1、数组

    数组是一种复合类型,存放在内存中的堆区,里面可以保存多个不同类型的数据,而且长度默认的是没有限制!

    数组的组成

    数组,是由元素(element)组成的,每个元素都是数组的中的一个成员!

    元素的名字,叫作下标(index),也叫作键(key),元素的值,叫作值(value)

    所以,数组中的一个元素也叫作一个“键值对”(key/value)

    创建数组

    显式创建

    就是利用array显式的创建:

    隐式创建

    其实就是利用数组的中括号语法创建:

    其中,键名可以缺省,系统会自动加上索引下标!

    2、数组的指针

    在每一个数组的内部,都有一个数组元素的指针(看不见摸不着),该指针负责指向数组内的某个元素,那么这个被指向的元素,就叫作“当前元素”!

    典型的,如果我们定义了一个数组然后什么都没做的话,此时数组的指针就指向该数组的第一个元素!

    指针相关函数:

    key():语法是:key(数组名),作用:获取该数组当前元素的键!

    current():语法是:current(数组名),作用:获取该数组当前元素的值!

    next():语法是:next(数组名),作用:将数组的指针下移一位

    reset():语法是:reset(数组名),作用:重置数组的指针(将数组的指针重新指向第一个元素)

    prev():向上移动数组指针,previous(先前的)

    end():reset是将数组的指针移动到第一个元素,那么end也是重置指针,不过是重置到最后一个元素!

    3、数组常用函数

    each():同时兼备了key、current、next函数的功能,既可以获取到当前元素的值,也能获取到当前元素的键!

    注意each的返回值:

    1),  返回的是一个数组,而且是一个索引和关联并存的混合数组

    2),  在原有数组的当前元素的基础上,重新创建了一个新的数组,其中原数组元素的值和键都是新数组的值,并为其分别创建了索引下标和关联下标

    其中索引的:$each[0]代表原数组当前元素的键,$each[1]代表原数组当前元素的值

    其中关联的:$each[‘key’]代表原数组当前元素的键,$each[‘value’]代表原数组当前元素的值

    list():也是一个系统函数,它可以利用一个索引数组,一次性的为多个变量赋值!

    while+each+list遍历:

    count():计算并返回数组中的元素的个数或者对象中的属性的个数!另外,count还有第二个参数,默认为0或false,如果是1或true,则支持递归统计(内部数组的值也会统计)

    range():使用range来定义数组,有三个参数:1)、开始字符或数字,2)、结束的字符或数字3)、步伐:一次跳转几个字符或数字

    array_merge():array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面(重新索引)。即使索引下标没有冲突,一样是重新索引。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引

    另外,运算符"+"也可以实现数组的合并,规则:无论是索引数组还是关联数组,都会直接舍弃后面重复下标的元素!

    array_rand():这里的rand是随机的意思,作用是随机抽取数组内的几个元素的键!并返回一个索引数组!需要两个参数:第一个是一个数组名,第二个抽取的个数

    shuffle():作用是打乱一个数组,而且是直接在原数组上进行打乱!而且会重新生成索引下标!

    max()和min():还可以获得数组内的最大值和最小值!

    array_keys():获取所有元素的键,返回一个索引数组!

    array_values():获取所有元素的值,返回一个索引数组!

     array_combine():有两个参数,都是数组,拿第一个数组的值作为新数组的键,第二个数组的值作为新数组的值重新组合成一个新数组!

    array_flip():交换数组的键和值!

    in_array():判断一个数据是否是某个数组里面元素的值!返回一个布尔值!需要两个参数:第一个是某个具体的数据,第二个是一个数组名

    array_key_exists():判断一个数组内是否存在某个键,也返回一个布尔值,也需要两个参数:第一个是具体的数据,第二个是一个数组名

    array_search():作用是搜索数组内的某个元素的值,并返回其下标值!至少需要两个参数:第一个参数是一个具体的值,第二个参数是一个数组名

    array_chunk():将一个数组分割成多个数组,其中每个数组的单元数目由 第二个参数 决定。最后一个数组的单元数目可能会少于 第二个参数 个。

    implode():作用是将一个数组元素的所有的值,利用一个指定的分隔符连接成一个字符串!需要两个参数:第一个是分割符,这里可以省略,如果省略,那就是没有分隔符,第二个是一个数组名;

    explode():作用是将一个字符串,利用其中的分隔符,将其分割成多个部分,形成一个数组!需要两个参数:第一个参数是一个分隔符,第二个参数是一个字符串!

    extract():将数组中的每一个元素都变成一个变量,其中变量的名字就是数组元素的键,变量的值就是数组元素的值!常见的是,可以将一些数据放到一个数组内,然后作为函数的参数传递到一个函数内,然后在函数内把这个数组extract掉,从而产生了需要的变量!

    compact():利用多个变量,形成一个数组,很显然,数组元素的键就是变量的名字,数组元素的值就是变量的值!使用场景:如果一个函数的返回值有很多个,可以把所有的返回值放到一个数组里面,然后返回这个数组就行了!

    array_map():有两个参数,第一个是一个函数,第二个是一个数组或是一个数组列表,使后面的数组每一个单元都经过第一个函数的处理,返回处理过后的数组

    array_push()将一个或多个数据压入数组的尾部!

    array_pop()将数组的最后一个数据弹出

    array_unshift()从数组的前面加入数据

    array_shift()从数组的前面弹出数据

    sort():对数组中的元素进行升序排序,也就是从低到高!排序之后,会丢失原数组的键,重新生成一个索引数组!

    asort():也是升序排序,只是排序后会保留以前的键值对!

    rsort():这里的r就是reverse的意思!对数组元素的值进行降序排序,也就是从高到低:排序之后会重新生成一个索引数组!

    arsort():也是降序排序,只是会保留以前的键值对!

  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/zxz1987/p/6098618.html
Copyright © 2011-2022 走看看