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():也是降序排序,只是会保留以前的键值对!

  • 相关阅读:
    Spring注释事务失效及解决办法
    在使用springMVC时,我使用了@Service这样的注解,发现使用注解@Transactional声明的事务不起作用
    如何在Oracle中复制表结构和表数据
    Tomcat Deployment failure ,locked one or more files
    java中对List中对象排序实现
    HDU 5002 Tree LCT 区间更新
    2014-2015 ACM-ICPC, Asia Xian Regional Contest G The Problem to Slow Down You 回文树
    Codeforces Round #323 (Div. 1) B. Once Again... 暴力
    Codeforces Round #323 (Div. 2) C. GCD Table 暴力
    hdu 5497 Inversion 树状数组 逆序对,单点修改
  • 原文地址:https://www.cnblogs.com/zxz1987/p/6098618.html
Copyright © 2011-2022 走看看