数组,顾名思义,本质上就是一系列数据的组合。在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取。PHP对数据的操作能力非常强大,尤其是PHP为程序开发人员提供了大量方便、易懂的数组操作函数,本章重点PHP数组的创建和使用。

创建数组和使用数组

在PHP中创建数组的方式主要有两种:一种是应用array()函数创建数组,另一种是直接通过为数组元素赋值的方式创建数组。

1.1使用array()函数创建数组

用array()语言结构来新建一个数组,该数组接受任意数量用逗号分隔的键(key)=>值(value)对;同时也可以在array中只给出数组元素值,而不必给出键,格式如下:

//键值对
array(key=>value,...)
//只有值
array(value1,value2,...)

在只有值而没有键的数组,在使用其中的数据时,可以直接利用他们在数组中的排列顺序取值:

$array = [100,"name"=>'lhs'];
echo $array[0];//
echo $array[1];//报错

注:1、应用array()函数声明数组时,数组下标既可以是数值索引也可以是关联索引。

  2、自PHP5.4起可以使用短数组定义语法,用[ ]代替array(),如:$array=['asp','php']。

  3、排列顺序取数组的值,默认下标从0开始,然后依次增加1。

1.2通过赋值方式创建数组

PHP中另一种比较灵活的数组创建方式是直接为数组元素赋值。如果在创建数组是不知道所创建数组的大小,或在实际编写程序时数组的大小可能发生改变,采用这种数组创建的方法较好,例如:

$array[1]="赋";
$array[2]="值";
$array[3]="方";
$array[4]="式";
print_r($array);//Array ( [1] => 赋 [2] => 值 [3] => 方 [4] => 式 )

1.3数组的类型

PHP支持两种数组:数字索引和关联数组,前者使用数字作为键,后者使用字符串作为键。

1.4多维数组

数组不一定就是一个键名和值得简单列表,数组中的每个位置还可以保存另一数组。使用这种方法,可以创建一个二维数组,例如:

$array = array(
'书籍' => array('文学','历史','地理'),
'体育用品'=>array('m'=>'足球','n'=>'篮球')
);
echo "<pre>";
print_r($array);

运行结果:

Array
(
[书籍] => Array
(
[0] => 文学
[1] => 历史
[2] => 地理
)
[体育用品] => Array
(
[m] => 足球
[n] => 篮球
)
)

按照同样的思路,将前面二维数组中最底层元素替换成数组,就可以创建一个三维数组。

1.5遍历数组

遍历数组中的所有元素是常用的一种操作,在遍历的过程中可以完成查询等功能。本文实例讲述了PHP数组遍历的几种常见方式,分享给大家供大家参考

1.5.1、使用for循环遍历数组

for循环只能用于遍历,纯索引数组!!!!

$arr = array(1,2,3,5,6,7);
$num = count($arr); //count最好放到for外面,可以让函数只执行一次
echo "数组元素的个数{$num}<br/>";
for($i=0;$i<$num;$i++){
echo "{$i}==>{$arr[$i]}<br/>";
}

结果如下:

数组元素的个数6
0==>1
1==>2
2==>3
3==>5
4==>6
5==>7

1.5.2、forEach循环遍历数组(最常用)

foreach可以遍历任何类型的数组!!!

$arr = array(1,2,3,"one"=>4,5,6,7);
foreach($arr as $value){
echo "{$value} ";
}
echo "<br>";
foreach($arr as $key => $value){
echo "{$key}=>{$value}<br>";
}

运行结果:

1 2 3 4 5 6 7
0=>1
1=>2
2=>3
one=>4
3=>5
4=>6
5=>7

1.6常用的数组函数

array_sum($arr):对数组内部的所有元素做求和运算

count($array):统计数组元素个数

array_search($name,$array):查询数组中指定元素

array_pop($array):获取数组中最后一个元素

end($array)函数取出数组的最后一个元素

array_unique($array):删除数组中重复元素

array_push($array, value, ...):向数组中添加元素

PHP数组总汇的更多相关文章

  1. javascript数组操作大全,数组方法总汇

    1. shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...

  2. JavaScript中数组的操作方法总汇

    Array(数组)是JavaScript中最为常用的类型了.ECMAScript中的数组都是数据的有序列表.数组中可以保存任何类型的数据.数组的大小是可以动态调整的,既可以随着数据的添加自动增长以容纳 ...

  3. [转] javascript对数组的操作

    javascript数组操作大全,数组方法总汇 1. shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = ...

  4. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  5. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  6. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  7. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  8. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  9. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

随机推荐

  1. 翻遍互联网都找不到的解决方案,一行代码轻松实现 Gitbook 默认折叠左侧菜单效果

    Gitbook 是一款产品文档构建工具,也可以用于构建个人博客,默认情况下电脑端访问时左侧菜单是展开状态,可偏偏有人想要实现默认折叠效果,于是诞生了这篇文章! 善良的我选择帮助别人 可能是网上关于 G ...

  2. Mybatis:配置解析

    配置解析  mybatis-config.xml(Mybatis核心配置文件)深深影响了Mybatis行为的设置和属性信息. 能配置的的内容 当然,并不是所有都是我们经常使用到的,下面选择经常使用的配 ...

  3. Matplotlib 设置

    # 导入相关模块 import matplotlib.pyplot as plt import numpy as np 设置 figure Matplotlib 绘制的图形都在一个默认的 figure ...

  4. Birt报表

    研究了两天终于发现开始学会了BIRT报表的开发流程. 第一步:到http://www.eclipse.org/downloads/下载  Eclipse IDE for Java and Report ...

  5. VirtualBox6安装CentOS7设置静态IP

    安装virtualbox后安装centos7, 这里就不在赘述了, 网上有很多教程 先关闭虚拟机, 按照如下设置配置网络 这里需要使用双网卡, 我们在开启第二个网卡, 如下所示 之后开启虚拟机, 进行 ...

  6. m101 真*sb($\huge 全场最瞎$)

    不想说这场考试,T1全场切,但是我: T3全场30,但是: 鬼知道我为什么敲的是p*p啊(而且还炸精了!) kuku----! $\huge 全场最瞎$

  7. 0911作业-if while循环小练习

    输入姑娘的年龄后,进行以下判断: 如果姑娘小于18岁,打印"不接受未成年" 如果姑娘大于18岁小于25岁,打印"心动表白" 如果姑娘大于25岁小于45岁,打印& ...

  8. css3软键盘不盖住输入框的方法

    css3软键盘不盖住输入框的方法 弹出软键盘的时候 最外面的容器高度就发生了变化 要减去软键盘高度了<pre>var bodyheight bodyheight = $('body').h ...

  9. webpack 打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)

    如今,webpack 毫无疑问是前端构建领域里最耀眼的一颗星,无论你前端走哪条路线,都需要有很强的webpack 知识.webpack 的基本用法这里就不展开讲了.主要探讨一下如何提高 webpack ...

  10. 每天一道算法题-leetcode136-只出现一次的数字

    前言 打卡第一天 2019.10.26日打卡 算法,即解决问题的方法.同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的.这就需要我们学习算法,找出哪个算法更好. 大家都知道 ...