PHP数组简单操作
1.数字索引数组
1.1创建一个数组
php中最常用的两个类型是:数组,字符串。数组也分为两种,一种是数字索引,一种是关键是索引,关键字索引有点像python中字典的意思.
数字索引类型的数组的创建方法
$products = array( 'Tires', 'Oil', 'Spark Plugs' );
即使一个数组不存在,也可以直接对数组进行赋值操作,自然就产生了一个数组,例如下面这个等同于上面
$products[0] = 'Tires';
$products[1] = 'Oil';
$products[2] = 'Spark Plugs';
1.2访问数组元素
访问的时候用下标来索引。
echo $products[0];
1.3使用循环访问数组
循环访问数组有for和foreach,一个是用在数字索引数组中,一个是用在关键字数组索引中
for($i=0; $i<3; $i++) {
echo $products[$i];
}
2.非数字索引数组
2.1创建一个数组
创建一个关键字索引数组
$prices = array('Tires'=>100, 'Oil'=>10, 'Spark Plug'=>4);
用下面这个也是等价的
$prices['Tires'] = 100;
$prices['Oil'] = 10;
$prices['Spark Plugs'] = 4;
2.2访问数组元素
访问的时候把数字下标改成关键字即可
echo $prices['Tires'];
2.3使用循环访问数组
用循环来处理关键字数组的时候有三种方法。foreach或list()或each()
先看foreach:
foreach ($prices as $key => $value) {
echo $key."-".$value."<br />";
} foreach ($prices as $value) {
echo $value
}
第一个foreach中把数组$prices里面的元素按照一组一组分开,然后把美一组中的关键和值分别赋值给$key和$value;第二个是默认把值赋值给变量$value
再看each():
while ($element = each($prices)){
echo $element['key'].'-'.$element['value']."<br />";
}
最后看list():
while (list($product,$price) = each($prices)) {
echo "$product - $price<br />";
}
list()只不过把each()传进来的一对键值对分别赋值给list().
以上两种不常用
3.数组操作符
数组只有一个联合(+)操作符
$a+$b:数组$b被附加到$a中,但是任何关键字相同的元素将不会被添加,相当已一个集合,集合是不允许重复的。
4.多维数组
二维数组就是一个二位表。举个二位数组的例子,其他的也类似:
$products = array(
array('TIR', 'Tires',100),
array('OIL', 'Oil', 10),
array('SPK', 'Spark Plugs', 4)
)
调用方法是:$products[0][1];
使用for循环的一个方法是:
for ($row=0;$row<3;$row++){
for($col=0;$col<3;$col++){
echo $products[$row][$col];
}
echo "<br />";
}
5.数组排序
5.1三种排序函数sort(),asort(),ksort()
sort()函数是对数字索引数组进行排序的。按照字母升序进行排列的,大写字母在小写字母前面,接收参数为数组,还有一个可选参数,这个参数的值是:SORT_REGULAR(默认), SORT_NUMERIC,SORT_STRING。作用是按照数字和字符顺序来排序。sourt($array);
asort()和ksort()分别是对关键字数组进行按照值和关键字进行排序。
asort()是对每个元素的值进行排序,ksort()是对元素关键字进行排序。
5.2反向排序
反向排序是将前面的三个函数的排序结果进行反序,从函数名字上来看,只需要在函数名上加一个r即可。
sort(),asort(),ksort()的反序分别对应:rsort(),arsort(),krsort().
多维数组的排序是需要自己设置比较函数的。
6.数组函数
在数组中常用的函数还有:
6.1在数组中浏览
每一个数组都有一个内部的指针来指向当前使用的是数组中的哪一个元素。
each()依次返回数组中的元素。
current()返回当前数组指针指向的一个元素,例如当对一个数组进行循环操作,在调用三个元素之后break,那么当前指针指向的就是第4个元素了,此时如果调用current(),那么就返回数组的第四个元素了。
reset()返回数组的第一个元素。
end()返回数组的最后一个元素。
6.2操作数组中的每一个元素
array_walk($array, func,agrv),以相同的方式修改数组中的每一个元素。
接收两个参数,第三个为可选:
第一个参数是要操作的数组,第二个参数是操作的方法,可以是自定义的一个函数,第三个参数是函数需要传入的参数。
6.3统计数组元素个数
count()和 sizeof()函数的作用和使用方法是一样的,都是统计数组里面元素的个数。没有区别
array_count_values()这个函数会统计每个特定的值在数组中出现的次数。
PHP数组简单操作的更多相关文章
- Numpy 数组简单操作
创建一个2*2的数组,计算对角线上元素的和 import numpy as np a = np.arange(4).reshape(2,2) print (a) #[[0 1] # [2 3]] n1 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- NumPy 学习(2): 数组的操作
1. 简单一维数组的操作 一维数组的操作类似于python自身的list类型. In [14]: arr = np.arange(10) In [15]: arr Out[15]: array([0, ...
- js对数组的操作函数
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手, ...
- PHP数组的操作
一.数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复 ...
- js数组的操作及数组与字符串的相互转化
数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/ ...
- Js数组的操作push,pop,shift,unshift等方法详细介绍
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾 ...
- selenium-获取一组数组进行操作(七)
selenium-获取一组数组进行操作 以 纵横中文网 中获取24小时畅销榜的书单为例 此文仅做 selenium 在自动化测试中怎么获取一组数据进行说明,不做网络爬虫解释 当然,使用爬虫得到本文 ...
- MongoDB数据库简单操作
之前学过的有mysql数据库,现在我们学习一种非关系型数据库 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数 ...
随机推荐
- AbstractQueuedSynchronizer与ReentrantLock
介绍 j.u.c包中的Lock定义了锁的行为. 而ReentrantLock是并发包下提供的一个锁的实现,它是一个可重入的.排他的锁. ReentrantLock有的属性也很简单,除了一个serial ...
- double运算的坑
某个结果运算后,得出的数据:a = 15.599999999 而不是15.6,导致条件判断 a < 15.6 为true,使程序出现bug 解决办法,对运算后的浮点数,进行格式化(以保留一位小数 ...
- 单源最短路径(3):SPFA 算法
SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman-ford 算法的基础上加上一个队列优化,减少了冗余的松弛 ...
- Vim Operations
Vim有三种模式:输入模式.命令模式和末行命令模式. 输入模式用来输入文字,命令模式用来下达编排文件的操作指令,末行命令模式用来进行文件存档.离开编辑器等操作. 进入及离开 末行模式下: :w 保存当 ...
- Fibonacci Sequence
0 递归 斐波那契数列定义: $F(n)=\left\{\begin{matrix}0, & n=0\\ 1, & n=1\\ F(n-1)+F(n-2), & n>1\ ...
- CodeForces-259B]Little Elephant and Magic Square
Little Elephant loves magic squares very much. A magic square is a 3 × 3 table, each cell contains ...
- Codeforce 263D Cycle in Graph 搜索 图论 哈密尔顿环
You've got a undirected graph G, consisting of n nodes. We will consider the nodes of the graph inde ...
- python ——文件的操作大全,如with..as
工作中遇到了需要对json文件进行增删内容操作的需要,于是系统性的整理了一下关于文件的基本操作这里的知识点: 结构:新建文件→打开文件→读取文件→关闭文件 一.基本文件操作 1.新建文件(打开文件), ...
- NetCore项目实战篇04---集成IdentityService4
大家都知道我们的项目中已有web api,现在可以正式访问,不论任何人只要通过输入对应的api网址就可以访问到我们的api 资源,这样是很不安全的,我们需求对当前用户进行身份验证,因此我们在项目中使用 ...
- 玩转FPGA边缘视觉——4k视频图像抓取
随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中. ...