PHP数组基本的操作方法
1、数组操作的基本函数
数组的键和值:
array_values($arr);获得数组的值
array_keys($arr);获得数组的键名
array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr);在数组中检索apple
array_search("apple",$arr);在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr);检索给定的键名是否存在数组中
isset($arr[apple]):检索给定的键名是否存在数组中
数组和变量之间的转换:
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组
数组的内部指针:
current($arr);返回数组中的当前单元
pos($arr);返回数组中的当前单元
key($arr);返回数组中当前单元的键名
prev($arr);将数组中的内部指针倒回一位
next($arr);将数组中的内部指针向前移动一位
end($arr);将数组中的内部指针指向最后一个单元
reset($arr;将数组中的内部指针指向第一个单元
each($arr);将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr);获得数组当前元素的键名和值
2、数组的排序
通过元素值对数组排序:
sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序:
asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个) 保留键名的数组排序。
通过键名对数组排序
ksort($arr);按照键名正序排序
krsort($arr);按照键名逆序排序
uksort($arr,"function");使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第2个
自然排序法排序
natsort($arr);自然排序(忽略键名)
natcasesort($arr);自然排序(忽略大小写,忽略键名)
数组排序:
使用sort()函数:
sort()函数是区分字母大小写的。所有的大家字母都在小写字母的前面。所以‘A’小于‘Z’,而'Z'小于‘a’。
该 函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型 的功能是非常有用的,例如,当要比较可能包含有数字2和12的字符串时。从数学角度看,2要小于12,但是作为字符串,‘12’却要小于‘2’。
使用asort()函数和ksort()函数对相关数组排序:
函数asort()根据数组的每个元素值进行排序。ksort()函数是按关键字排序而不是按值排序。
反向排序:
函数rsort()将一个一维数字索引数组按降序排序。函数arsort()将一个一维相关数组按每个元素值的降序排序。函数krsort()针根据数组元素的关键字将一维数组按照降序排序。
为了访问一个一维数组中的数据,需要使用数组的名称和元素的索引,除了一个元素具有两个索引——行和列外,二维数组和一维数组是类似的。
可以使用双重for循环来实现同样的效果:
for ( $row=0; $row<3; $row++ )
{
for ( $column=0; $column<3; $column++ )
{
echo '|'.$products[$row][$column];
|
echo '|<br />';
}
如果对一个大数组使用这种代码,那么将简洁得多。
你可能更喜欢创建列名称来代替数字。可以使用如下代码:
$products = array ( array ( 'Code'=>'TIR', 'Descrīption'=>'Tires', 'Price'=>100 ), array ( 'Code'=>'OIL', 'Descrīption'=>'Oil', 'Price'=>10 ), array ( 'Code'=>'SPK', 'Descrīption'=>'Spark Plugs', 'Price'=>4 ) };
如果希望检索单个值,那么使用这个数组会容易得多。请记住,将所描述的内容保存到用它的名 称命名的列中,与将其保存到所谓的第一列中相比,前者更容易记忆。使用描述性索引,不需要记住某个元素是存放在[x][y]位置的。使用一对有意义的行和 列的名称作为索引可以使用你很容易找到所需的数据。
然后,我们却不能使用一个简单的for循环按顺序遍历每一列。可以使用for循环遍历外部的数 字索引数组$products。$products数组的每一行都是一个具有描述性索引的数组。在while循环中使用each()和list()函数, 可以遍历整个内部数组。因此,需要一个内嵌有while循环的for循环。
for ( $row = 0; $row < 3; $row++ }
{
while ( list ( $key, $value ) = each ( $products[$row] ) )
{
echo "|$value";
}
echo '|<br />';
}
三维数组具有高、宽、深的概念。如果能轻松地将一个二维数组想像成一个有行和列的表格,那么就可以将三维数组想像成一堆像这样的表格。每个元素可以通过层、行和列进行引用。
根据创建多维数组的方法,可以创建四维、五维或六维数组。在PHP中,并没有设置数组维数的限制,但人们很难设想一个多于三维的数组。大多数的实际问题在逻辑上只需要使用三维或者更少维的数组结构就可以了。
PHP数组基本的操作方法的更多相关文章
- 《前端之路》之三 数组的属性 && 操作方法(上)
目录 03:数组的属性 && 操作方法(上) 03:数组的属性 && 操作方法(上) 一.Array property 数组的属性 1.constructor 返回对创 ...
- 关于Java中数组的常用操作方法
1. 声明一个数组 String[] arr1 = new String[5]; String[] arr2 = {"a","b","c", ...
- 《前端之路》之三 数组的属性 && 操作方法(下)
咱们 接着上篇来讲- 7.slice() 从某个已有的数组返回选定的元素 经常用来将类数组转化成数组,这样做一方面可以利用现有的数组方法更加方便的处理,另一方面是处于性能的考虑 var f = fun ...
- JS数组的基本操作方法
一.concat()concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3];var arr2 = [4,5];va ...
- js 数组对象的操作方法
在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...
- 【前端学习笔记02】JavaScript字符串、数组的一些操作方法
字符串操作: //str.length "micromajor".length // 10 //str.charAt() "micromajor".charAt ...
- JavaScript中数组的各种操作方法
[监测数组] 使用instanceof操作符,进行检测 ar arr = [1,2,3]; // arr = '非非'; if(arr instanceof Array){ console.log(' ...
- JavaScript 数组操作方法 和 ES5数组拓展
JavaScript中数组有各种操作方法,以下通过举例来说明各种方法的使用: 数组操作方法 push 在数组最后添加一个元素 var arr=[3,4,5,6] console.log(arr) // ...
- 第5章 Java数组
1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...
随机推荐
- Asp .Net Core网页数据爬取笔记
突然要用到地区数据,想到以前用python的Scrapy框架写过一个爬虫,于是打算直接去国家统计局把最新的地区数据抓取回来.本想只需要copy一下以前的代码,就可以得到新鲜出炉的数据,谁知打开以前的项 ...
- 基于EasyUi的datagrid合并单元格JS写法
$('#dg').datagrid({ width: 'auto', height: 'auto', scrollbarSize: , queryParams: {}, url: 'kkkk', co ...
- 【Cocos2d-Js实战教学(1)横版摇杆八方向移动】
本教程主要通过搭建一个横版摇杆八方向移动的实例,让大家如何用Cocos2dx-Js来做一款游戏,从基础了解Cocos2dx-Js的基本实现原理,从创建工程,到各个知识点的梳理. 教程分为上下两讲: 上 ...
- Python 使用 os 模块遍历目录/获取当前文件的路径
1.列出指定目录下所包含的目录 item = os.listdir("/Users/jinchengxie/go") 返回的是一个列表, 里面包含了指定目录下所包含的所有的目录 2 ...
- Centos出现-bash: unzip: command not found的解决办法
利用unzip命令解压缩的时候,出现-bash: unzip: command not found的错误. unzip——命令没有找到,其原因肯定是没有安装unzip. 利用一句命令就可以解决了. ...
- JS-DOM Element方法和属性
JS-DOM Element方法和属性 S-DOM Element方法和属性一,获取html元素1.getElementByID(id)通过对元素的ID访问,这是DOM一个基础的访问页面元素的方法.e ...
- POJ 2250
#include <iostream> #include <stack> #define MAXN 150 #include <string> using name ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
- (转) rabbitmq应用场景
原文:http://blog.csdn.net/wangpengblog/article/details/76405598
- 部署nexus服务
一.安装和启动 官网下载nexus-2.12安装包,地址:https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.12.0- ...