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中,并没有设置数组维数的限制,但人们很难设想一个多于三维的数组。大多数的实际问题在逻辑上只需要使用三维或者更少维的数组结构就可以了。

转载于:https://www.cnblogs.com/GlenLi/p/6942181.html

PHP数组基本的操作方法相关推荐

  1. js 数组对象的操作方法

    js 数组对象的操作方法 在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行, ...

  2. 03前端入门课--数组的属性 操作方法

    ### 03:数组的属性 && 操作方法 [TOC] #### 一.Array property 数组的属性      ##### 1.constructor           返回 ...

  3. 《前端之路》之三 数组的属性 操作方法(上)

    目录 03:数组的属性 && 操作方法(上) 03:数组的属性 && 操作方法(上) 一.Array property 数组的属性 1.constructor 返回对创 ...

  4. php二维数组取交集,php array交集 PHP二维数组取差集操作方法 - 非主流娱乐网

    php array交集 PHP二维数组取差集操作方法 2019-07-11 23:14:16 来源: 非主流娱乐网责任编辑:小s0条评论 一.需求 PHP 中对二维数组取差集操作. 例如: $arr1 ...

  5. Numpy数组图像基本操作方法,及截取ROI、增加行与列

    Numpy数组截取ROI,增加列.行 1)图片基本操作:读写.显示.缩放.旋转 2)截取ROI,为图片增加行.列 参考 图片在Numpy数组中使用ndarry表示的. 比如分辨率: 400 * 500 ...

  6. Java数组的基本操作方法整理

    数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数 ...

  7. JS数组常用的操作方法

    1. push() 将一个或多个元素添加到数组的末尾,并返回该数组的新长度.此方法修改原有数组. var arr = ['a','b','c']; var ele = arr.push('d'); / ...

  8. 【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )

    文章目录 一.数组取值操作方法 二.一维数组取值 下标操作到指针操作 演化过程 三.二维数组取值 下标操作到指针操作 演化过程 一.数组取值操作方法 给定一个二维数组 : int array[2][3 ...

  9. Java里的数组介绍

    注意, 本文讲的是数组(Array),  非数组型线性表容器(ArrayList). 一. C语言的静态数组和动态数组. 稍微接触过c的程序猿都应该知道, c语言里的数组分为静态数组和动态数组. 1. ...

最新文章

  1. 04.微博消息的语言检测
  2. 替代离线RL?Transformer进军决策领域,「序列建模」成关键
  3. Python实现不规则txt文本数据读取并转换为csv文本
  4. 【收藏】Windows编译安装Redis 6.0
  5. mysql手工注入imformation_mysql 简单手工注入
  6. fiddler打开后 浏览器就上不了网的解决方法
  7. 转载一朋友的qq空间,感觉都是至理名言啊!
  8. 驴妈妈、途牛们该如何收割亲子游市场的红利?
  9. Kubernetes 小白学习笔记(21)--kubernetes的运维-管理Lable
  10. 用计算机做设计,做平面设计一般电脑可以吗
  11. 电脑桌面录屏软件大全,给大家推荐一波优秀的屏幕录像工具!
  12. 下载IEEE 论文模板的方法
  13. linux卸载nps,Linux NPS服务部署
  14. 西安交大计算机研究生拟录取,西安交通大学2018硕士研究生拟录取名单公示
  15. 百度地图-手动JS触发自定义Marker覆盖物点击事件
  16. 特殊符号 mysql_mysql 特殊字符
  17. 案例分析:股票涨跌预测
  18. 什么是 Sidecar
  19. Excel:如何批量将文本数字转为数值型数据
  20. 叶节点到根节点的路径_所有根到叶路径

热门文章

  1. linux tomcat集群配置笔记
  2. 玻璃上的编码喜悦(+ 10史诗般的Epigrams)
  3. 安装oracle后在cmd,在WINDOWS上安装ORACLE RAC的注意事项
  4. CSP 201909-2 小明种苹果(续)Python实现+详解
  5. c语言输入函数有什么作用,c语言的输入函数有哪些
  6. linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...
  7. 从事软件测试为什么要学自动化?
  8. Java swing是什么?有什么作用?
  9. 缓存和web缓存分别是什么?
  10. python值得报班学习吗