数组基础:

php中,数组的下标可以整数,也可以是字符串

php中,数组的元素顺序不是由下标决定,而是由其“加入”的顺序决定

定义:

$arr1 = array(元素1,元素2,。。。。。。);

array(1,1.1,5,'abc',true,false); //可以存储任何数据,此时为默认下标

array(2=>1,4=>1.1,3=>5,7=>'abc',0=>true); //下标可任意设定(无需顺序,无需连续)

array(2=>1,1.1,1=>5,'abc',0=>true); //可以加下标,也可以不加,不加下标则为默认下标

//默认下标规则:前面已经用过的最大数字下标+1

//这个数字的下标分别是:2,3,1,4,0

array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true); //混合下标,同样遵循默认下标规则

array(-2=>1,'dd'=>5,1.1,'abc',true); //负数下标不算在整数下标中,而只当作字符下标

//则这个数组最后三项的下标为:0,1,2

array(2.7=>1,'dd'=>5,1=>1.1,'abc',true); //浮点数下标会自动转换为整数,且直接去掉小数部分

array("2.7"=>1,'dd'=>5,"11"=>1.1,'abc',true); //纯数字字符串下标,当作数字看待

array(2=>1,'dd'=>5,true=>1.1,'abc',false=>true); //布尔值当作下标,则true为1,false为0

array(2=>1,'dd'=>5,2=>1.1,'abc',true); //如果下标跟前面的重复,则单纯覆盖前面同名下标的值

其他形式:

$arr1[] = 1;

$arr1[] = 5;

$arr1[] = 1.1;

......  //直接在变量后面使用[],就成为数组,并依次赋值

$arr2['aa'] = 1;

$arr2['bb'] = 5;

$arr2[5] = 1.1;

......  //这种形式写的下标,其实跟使用array语法结构几乎一样

数组的分类:

从键值关系分为:

关联数组:通常是指下标为字符串,并且该字符串大体可以表达出数据的含义的数组

例:$person = array("name" => "poe", "age" => 18, "edu" => "大学毕业");

索引数组:通常是指一个数组的下标严格的从0开始的连续的数字下标 -- 跟js数组类似

从数组层次为分:

一维数组:就是一个数组中的每一个元素值,都是一个普通值(非数组值)

例:$person = array("name" => "poe", "age" => 18, "edu" => "大学毕业");

二维数组:一个数组中的每一项,又是一个一维数组。

$person = array(

"name" => array("xiaohua","xiaofang),

"age" => array(18,22),

"edu" => array("大学毕业","小学",)

);

多维数组:依次类推。。。

多维数组的一般语法形式:

$v1 = 数组名[下标][下标][......]

数组的遍历:

遍历基本语法:

foreach($arr as [$key =>] $value) {

//这里就可以对$key and $value进行所有可能的操作 -- 因为他们就是一个变量

//$key代表每次取得元素的下标,可能是数字,也可以是字符串

//$value代表每次取得元素的值,可能是各种类型

//此循环结构会从数组的第一项一直遍历到最后一项,然后结束

}

数组指针和遍历原理:

每个数组,其内部都有一个“指针”,该指针决定了该数组当前取值的时候取到的元素

foreach遍历过程中,都是依赖于该指针而进行的。

举例:$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true);

wKioL1ZNx1Sxflt6AAAnrLtN90Q498.jpg

指针除了负责foreach循环的位置设定之外,还有其他一些函数也依赖于指针:

1:$v1 = current($arr1);    //取得$arr1中当前指针指向的元素的值,如果没有指向元素,则为false

2:$v1 = key($arr1);        //取得$arr1中当前指针指向的元素的下标,。。。。。。。。。。。。。

3:$v1 = next($arr1);       //将指针移向“下一个元素”,然后取得该下一个元素的值

4:$v1 = prev($arr1);       //将指针移向“上一个元素”,然后取得该上一个元素的值

5:$v1 = reset($arr1);      //将指针移向“第一个元素”,并取得该元素的值

6:$v1 = end($arr1);        //将指针移向“最后一个元素”,并取得该元素的值

7:$v1 = each($arr1);       //取得当前元素的下标和值,然后移动指针到下一个位置

欢迎大家阅读《PHP数组介绍_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

原创文章,转载请注明: 转载自搞代码

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

php中数组下标,PHP数组介绍_php相关推荐

  1. js 取得数组下标_数组的介绍及使用

    JavaScript 中的数组常用于在单个变量中存储多个值.数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存).创建数组的目的就是为了保存更多的数据. 数组概念和语法 概念:数组 ...

  2. 增加数组下标_数组以及ArrayList源码解析

    点击上方"码之初"关注,···选择"设为星标" 与精品技术文章不期而遇 前言 前一篇我们对数据结构有了个整体的概念上的了解,没看过的小伙伴们可以看我的上篇文章: ...

  3. php自带excel,基于php中使用excel的简单介绍_PHP

    在工作中需要处理多语言的翻译问题,翻译都是写在excel表格里面.为了处理方便我就保留中文和英文两列. 这样需要将这些数据从excel中取出来,然乎保存在excel的数组中,通过使用循环数组将相应的数 ...

  4. 通过数组下标为数组赋值(C语言)

    编写程序,对具有19个元素的字符数组,从下标为8的元素开始,全部设置为"*",保持前8个元素不变. #include <stdio.h> #include <st ...

  5. java类型的数组初始化_java数组初始化详解

    介绍 学习Java的朋友想必对数组并不陌生,它需要使用之前对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使 ...

  6. Postgresql数组操作符及数组函数

    表1.数组操作符 操作符 描述 例子 结果 = 等于 ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3] t <> 不等于 ARRAY[1,2,3] < ...

  7. java定义数组范围_Java数组的定义和使用

    为什么需要数组? 问题:我们要计算30个学生的平均分 如果没有数组,我们的代码是这样的 int score1 = 32; int score2 = 56; int score3 = 78; //--此 ...

  8. php 2个数组并集,php中数组的并集、交集和差集函数介绍_PHP教程

    在php中如果我想要对两个数组进行如并集.交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff(). //计算数组 ...

  9. php 批量初始化数组,php中如何初始化一个数组_php

    初始化一个数组一般有2种方法:一个是单独给数组中的元素赋值:还有一种是把所有的元素一起初始化. 下面简要介绍初始化数组的2种方法: 第一种方法: $a["color"]=" ...

最新文章

  1. JSP第二次作业_1小题
  2. 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
  3. C# Struct 内存对齐
  4. php cbd架构,CBD模式
  5. 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
  6. 语言 ota_新增飞屏功能 ARCFOX αT首次OTA升级
  7. jquery的get和post请求
  8. Android 开发中常见的Eclipse排版设置
  9. OpenCV-车牌号检测
  10. 离散数学 习题篇 —— 集合相等与子集关系判断
  11. scala linux环境变量配置,Scala 下载安装并配置环境
  12. 手把手教你怎样运用手机群控软件赚钱-手游工作室篇
  13. meson和pkg-config
  14. 日记侠:微信传说的功能升级了,你用了没有?
  15. 机器学习实战之信用卡诈骗(二)
  16. 火车票价还不够高(按照《经济学通识》手敲的(非原创))
  17. 人脸识别最低像素_深入浅出人脸识别技术
  18. 宏碁E1-471G笔记本固态启动盘问题
  19. 花1亿扶持优质红人,如涵推动网红经济出圈之路有何深意?
  20. Java开发环境搭建步骤

热门文章

  1. http中指定使用worker/prefork
  2. RDIFramework.NET — 系列目录 — 基于.NET的快速信息化系统开发框架
  3. 掌握Android中的进程和线程
  4. Wt::WTreeNode
  5. 数字带通滤波器c语言程序,C语言编写FIR数字低通滤波器
  6. 程序员到底要不要重复造轮子?
  7. mybatis循环map的一些技巧
  8. nat - 虚拟服务器设置,nat 虚拟服务器设置
  9. [转载] java如何实现一个字符串的反转和替换
  10. mcq 队列_人工智能搜索问题能力问题解答(MCQ)