• php笔记之数组


    数组初步

    概念

    数组是一种数据的集合

    数组主要是用于存储具有行列特征(表格)的数据

    php的数据的分类

    1索引数组

    数组的下标是整数,这样的数组就是索引组

    2.关联数组

    数组的下标是字符串,这样的数组是关联数组

    php数组的创建

    1.索引数组的创建

    示例:

     说明:

    在php中数组的下标可以不连续

    2.关联数组的创建

    语法:

    $arr = array(键名=>键值, 键名=>键值,….);
    $arr = [键名=>键值, 键名=>键值,….];

    说明:

    php中的数组元素由两部分组成,键名(下标),键值

    示例:

     4.多维数组

    php中支持多维数组,如果一个数组的元素又是一个数组,那么这就是多维数组

     5.数组元素的访问

    一维数组元素的访问

    语法:

    $数组名[下标/键名]

    示例:

     二位数组元素的访问

    语法:

    $数组名[行下标][列下标]

    示例:

     6.数组的长度

    count()

    current($arr)        用于当前指针所指向的元素的键值
    key($arr)            用于当前指针所指向的元素的键名
    next($arr)            用于将数组的指针下移。
    prev($arr)            用于将数组的指针上移。
    reset($arr);            用于将数组的指针重置(归位,数组的指针默认位于第1个元素)。
    end($arr);            用于将数组的指针移到最后一个元素。

    用于获取数组的长度

     数组的指针

    数组的指针用于表示单签所关注的元素

    current($arr)        用于当前指针所指向的元素的键值
    key($arr)            用于当前指针所指向的元素的键名
    next($arr)            用于将数组的指针下移。
    prev($arr)            用于将数组的指针上移。
    reset($arr);            用于将数组的指针重置(归位,数组的指针默认位于第1个元素)。
    end($arr);            用于将数组的指针移到最后一个元素。

    示例:

    数组的遍历

    for

    for循环是使用循环控制变量来模拟下标的方式来遍历数据,只能遍历下连续或有规则

     

     foreach

    语法:

    foreach($arr  as$key=>】$value){
            //循环体
    }

    说明:

    $arr是所要遍历的数组。$key 、$value就是一个变量,变量名可以自定义

    示例:

     原理:

    首先对数组的指针进行重置

    读取当前指针所指向的数组元素,并将元素的键名赋值变量$key,将键值赋值给变量$value,同时会将数组的指针下移一行(下移指针是为了下一次循环)

    foreach不需要我们控制循环的次数,他会自动判断什么时候结束循环

    while-each-list遍历

    使用while循环,及each()函数,list语法结构联合来遍历数组

    each

    each(数组)

    说明:

    用于获取当前指针所指向的元素键名和键值,并以索引元素和关系元素两种形式表示,同时将指针下移一行

    示例:

     

     list

    语法:

    list(变量列表)=$arr

     说明:

    将数组$arr中的索引元素赋值给变量列表中的变量

    示例:

     while-each-list遍历数组

     

     foreach与list连用

    语法:

    list(变量列表)=$arr

    说明:

    list语句的右侧必须是数组

     示例:

     数组操作常用的函数

    数组的长度

    count(数组名)

     array_keys()

    获取数组元素所有的键名

    array_values()

    获取数组元素的所有的键值

    示例:

     判断键名和键值是否存在

    array_key_exists(key,arr)

    用于判断某个键名是否存在数组中,如果存在则返回true,否则返回false

    in_array(value,arr)

    用于判断某个键值是否存在数组中,如果存在则返回true,否则返回false

    示例:

    数组的合并

     array_merge(数组1,数组2)

     数组的排序

    sort()

    对数组按键值进行升序排序

    rsort()

    对数组进行降序排序

    示例:

     asort()

    对数组进行升序排序,但原下标不会改变

    arsort()

    对数组键值进行降序排序,但原下标不会变

     extract

    用于解压数组,将关联元素转换为以键名为变量名的变量

     数组的相关算法

    排序算法

    冒泡排序法

     插入排序法

     查找算法

    顺序查找法:

    二分查找算法

    前提:

           数组一定是有序,且元素不能重复。

     

  • 相关阅读:
    zoj 3599 Game 博弈论
    hdu 2486/2580 / poj 3922 A simple stone game 博弈论
    hdu 1517 A Multiplication Game 博弈论
    hdu 4407 Sum 容斥原理
    hdu 4686 Arc of Dream
    hdu 4588 Count The Carries
    hdu 4586 Play the Dice
    C#学习(5)
    C#学习(4)
    C#学习(3)
  • 原文地址:https://www.cnblogs.com/zhangcheng94/p/12206834.html
Copyright © 2020-2023  润新知