数组的英文是array,可以存入多个不同类型的数据,是一个复合数据类型。

eg:

$shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');

echo '

';

var_dump($shu);

echo '

';

?>

在上例中,我们发现我们存入了:

1.整型

2.浮点

3.布尔

4.字符串

注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。

我们用var_dump()打印出来显示看一下效果:

注:

索引数组的下标必须要从0开始吗?

答:这个问题其实不然,索引数组并不一定要从0开始。

那如何能够不从0开始呢?

答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写写。

$kele = array('只有不断努力才能博得未来',10 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');

//打印显示$kele

echo '

';

var_dump($kele);

echo '

';

?>

1.for循环遍历索引数组

//声明一个数组,值为1到10

$num = array(1,2,3,4,5,6,7,8,9,10);

//按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9

echo $num[0].'
';

echo $num[9].'
';

//我们可以得到数组中元素的总个数,为10

echo count($num);

//遍历这个索引数组的话,我们就可以定义一个变量为$i

//$i 的值为0,从0开始

//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环

for($i = 0 ; $i < count($num) ; $i++){

echo $num[$i].'
';

}

?>

通过上面的例子,我们就把数组进行了循环。

因为下标是从0开始的,定义

i 加1 ,但是必须要小于10,因为数组下标的最大值为9。

2.常用操作数组函数

函数

功能

array_shift

弹出数组中的第一个元素

array_unshift

在数组的开始处压入元素

array_push

向数组的末尾处压入元素

array_pop

弹出数组末尾的最后一个元素

current

读出指针当前位置的值

key

读出指针当前位置的键

next

指针向下移

prev

向上移

reset

指针到开始处

end

指针到结束处

这些函数,也是面试中基础面试中最爱问到的问题。

函数名

功能

array_combine()

生成一个数组,用一个数组的值作为键名,另一个数组值作为值

range()

创建并返回一个包含指定范围的元素的数组。

compact()

创建一个由参数所带变量组成的数组

array_fill()

用给定的值生成数组

array_chunk()

把一个数组分割为新的数组块

array_merge()

把两个或多个数组合并为一个数组

array_slice()

在数组中根据条件取出一段值,并返回

array_diff()

返回两个数组的差集数组

array_search()

在数组中搜索给定的值,如果成功则返回相应的键名

array_splice()

把数组中的一部分去掉并用其它值取代

array_sum()

计算数组中所有值的和

in_array()

检查数组中是否存在某个值

array_key_exists()

检查给定的键名或索引是否存在于数组中

shuffle()

将数组打乱,保留键值

count()

计算数组中的单元数目或对象中的属性个数

array_flip()

返回一个键值反转后的数组

array_keys()

返回数组所有的键,组成一个数组

array_values()

返回数组中所有值,组成一个数组

array_reverse()

返回一个元素顺序相反的数组

array_count_values()

统计数组中所有的值出现的次数

array_rand()

从数组中随机抽取一个或多个元素,注意是键名

array_unique()

删除重复值,返回剩余数组

sort()

按升序对给定数组的值排序,不保留键名

rsort()

对数组逆向排序,不保留键名

asort()

对数组排序,保持索引关系

arsort()

对数组逆向排序,保持索引关系

ksort()

按键名对数组排序

krsort()

将数组按照键逆向排序

natsort()

用自然顺序算法对数组中的元素排序

natcasesort()

自然排序,不区分大小写

array_filter()

去掉数组中的空元素或者预定元素

extract

将键变为变量名,将值变为变量值

eg:弹出数组中的第一个元素

$mingren = array("邓超", "黄晓明", "宁泽涛", "钟汉良");

$dc = array_shift($mingren);

echo $dc .'
';

print_r($mingren);

?>

PHP数组数据结构图,PHP数组与数据结构相关推荐

  1. js 模糊筛选 筛选数组数据_jquery遍历数组与筛选数组的方法

    grepgrep()方法用于数组元素过滤筛选 grep(array,callback,invert) array:待过滤数组; callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数 ...

  2. Vue中构造数组数据-map和forEach方法梳理

    数组操作是前端最重要的数据操作,构造数组数据,又是数组操作中很常见的.本文将梳理下map和forEach方法在Vue项目中的使用. 想要深入理解这两个方法,一定要手写几次简易的实现,理解其中的要义.这 ...

  3. android 获取数组大小,看得见的数据结构Android版之数组表(数据结构篇)

    零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...

  4. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  5. c++ 将集合set的数据输出到数组中_Java集合类(容器类)简介:(摘抄)

    Java集合可用于存储数量不等的对象,并可以实现常用的数据结构(如栈.队列等待),还可以用于保存具有映射关系的关联数组.Java集合就一种容器,可以把多个对象放进容器中,Java集合可以记住容器中的对 ...

  6. 数据结构与算法--数组:二维数组中查找

    数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...

  7. 数组合并假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法,将这 n 个数组合并到一个数组,且各元素按升序排列。即实现函数-C-icoding-排序-数据结构

    数组合并 假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法, 将这 n 个数组合并到一个数组,且各元素按升序排列.即实现函数: void merge_arrays(const ...

  8. c语言uint8的数组怎么转换为uint32_剖析JS和Redis的数据结构设计:数组

    语言的数据结构相通性 最近读了Redis的原理实现,感受到程序语言的相通性,只要你掌握了语言的共性,触类旁通其他语言的开发就变得非常简单了. 总体来说,各种程序语言底层的设计思想是非常相通的,首先针对 ...

  9. js 取得数组下标_剖析JS和Redis的数据结构设计:数组

    语言的数据结构相通性 最近读了Redis的原理实现,感受到程序语言的相通性,只要你掌握了语言的共性,触类旁通其他语言的开发就变得非常简单了. 总体来说,各种程序语言底层的设计思想是非常相通的,首先针对 ...

  10. html5数组删除相同数据,js数组相减简单示例【删除a数组所有与b数组相同元素】...

    js数组相减简单示例[删除a数组所有与b数组相同元素] 本文实例讲述了js数组相减.分享给大家供大家参考,具体如下: js数组相减 function arrChange( a, b ){ for (v ...

最新文章

  1. CCS卸载安装过程及所遇问题
  2. 博客园Markdown模式的MATLAB代码高亮方案
  3. RESTful API 设计指南[转]
  4. Linux 复习重点目录
  5. linux系统挂载磁盘慢,arch开机速度竟然是挂载磁盘拖慢了。。
  6. html5 渐变色矩形,使用HTML5画布元素的矩形渐变
  7. SpringCloud 阶段总结
  8. 一枚比特币30多万,家用电脑24小时挖矿,多久才能挖到一枚?
  9. 小米5x对标OV,突围荣耀,能否成功?
  10. CentOS系统里如何正确取消或者延长屏幕保护自动锁屏功能(图文详解)
  11. 基于Java的Selenium学习笔记——启动Chrome
  12. 数据结构 /ord ;集合;dict()
  13. 查看已安装java插件_记录下eclipse下的插件安装,查看及删除方式
  14. 使用SQLParameter解决SQL注入问题
  15. html编辑字体的英文解释,html的字体名字(英文)
  16. 极光推送官网android,极光推送(一)——配置
  17. 一键清理系统垃圾文件bat
  18. mixin机器人java开发_mixin_labs-java-bot
  19. 让NodeJS出错退出之后自动重启的办法
  20. 我的职业观——HP大中华区总裁孙振耀退休感言

热门文章

  1. Fusion-IO:应用应为闪存优化
  2. 保存远程图片到本地 同时取得第一张图片并创建缩略图
  3. jQuery.extend()
  4. 12. MySQL 函数
  5. 8. Sphinx 站内搜索
  6. 用maya怎么做ak47_串串香应该怎么用配料才能做得好吃
  7. 【shell】一篇文章学懂Shell脚本
  8. day 34 进程线程排序 抢票 初级生产者消费者
  9. 上手DocumentDB On Azure (二)
  10. [FZYZOJ 1002] 雨天