PHP操作数组相关函数


Posted in PHP onFebruary 03, 2011

ange($low, $high),range($low, $high, $step);//创建顺序值的数组如:range(1,4)为(1,2,3,4)又如range('a','z')

each($array)按顺序返回数组的当前元素,并且将下一个元素设置为当前元素;

reset($array)将数组当前元素重新设置到数组开始处

list()可以用来将一个数组分解为一系列的值,如 list($a,$b)=each($array)

shuffle($array),array_rand($arg, $num_req);对数组随机排序

array_reverse($input),array_reverse($input, $preserve_keys) 返回原数组的反向排序

sort($array);对数组排序

PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
先说说PHP数组的定义…PHP数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可以是数值和关联的,如$array[0],$array[one]…
创建数组
PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array[0]来代表1,创建数值数组时可以省略索引.

$array = array( 
1 => “one”, 
2 => “two”, 
3 => “three”, 
4 => array( 
“one” => 1, 
“two” => 2, 
“three” => 3 
) 
);

二维数组,同时又是关联数组,引用时可以$array[4][“one”]来代表1.
三维以上依此类推…
如果要批量创建数组,则可以通过下面这个函数:
array range ( mixed low, mixed high [, number step] )
如$array = range(1,6);代表array(1,2,3,4,5,6);
$array = range(a,f); 代表 array(a,b,c,d,e,f);

输出数组
PHP中输出数组的函数有比较多,常用的有
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
还有像echo,print,printf都可以输出单个数组.

测试数组
有时我们需要判定一个变量是否为数组,则可以使用:
bool is_array ( mixed var )

增加或删除数组元素
数组声明后并不是一成不变的,可能通过对数组的增加删除来进行深入的操作:
int array_push ( array &array, mixed var [, mixed ...] ) 将一个或多个单元压入数组的末尾,数组的长度根据入栈变量的数目增加,如array_push($array,$var)
mixed array_pop ( array &array ) 将数组的最后一个元素弹出(出栈),并在结束后重置数组的指针
mixed array_shift ( array &array ) 返回数组的第一个元素.
int array_unshift ( array &array, mixed var [, mixed ...] ) 在数组的开头插入一个或多个单元
array array_pad ( array input, int pad_size, mixed pad_value ) 用值将数组填补到指定的长度,如array_pad($array,3,$var);

定位数组元素
bool in_array ( mixed needle, array haystack [, bool strict] ) 检查数组中是否存在某个值
array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回数组中的所有键名,重组成一个新数组
bool array_key_exists ( mixed key, array search ) 检查给定的key是否存在于数组中.
array array_values ( array input ) 返回数组中所有的值
mixed array_search ( mixed needle, array haystack [, bool strict] ) 在数组中搜索给定的值,成功则返回key.

遍历数组
PHP中提供了很多获取key和value的函数
mixed key ( array &array ) 从关联数组中取得键名
mixed reset ( array &array ) 将数组指针重置
array each ( array &array ) 返回数组中的键/值对并将数组向前移一步
mixed current ( array &array ) 返回数组中的当前单元
mixed end ( array &array ) 将数组中的指针移向最后一位
mixed next ( array &array ) 将数组中的指针移向下一位
mixed prev ( array &array ) 将数组中的指针移向上一位
array array_reverse ( array array [, bool preserve_keys] ) 返回一个单元顺序相反的数组
array array_flip ( array trans ) 将数组中的键值角色调换
除了上面的函数外还可以使用循环来对数组中的元素进行遍历,如
foreach (array_expr as $value)
{ statement }
foreach (array_expr as $key=>$value)
{ statement }
提取每个键/值对,直到获得所有项或满足某些内部条件为止
void list ( mixed varname, mixed ... ) 把数组中的值赋给一些变量

确定数组大小和唯一性
int count ( mixed var [, int mode] ) 计算数组中单元数组或对象中属性的个数, sizeof 的同名函数
array array_count_values ( array input ) 统计数组中所有值出现的次数
array array_unique ( array array ) 移除数组中重复的值

数组排序
这个听说是计算器的核心问题…呵呵…事实也是这样…
bool sort ( array &array [, int sort_flags] ) 对数组进行排序
bool natsort ( array &array ) 用自然排序法对数组进行排序
bool natcasesort ( array &array ) 用自然排序法对数组进行排序,不区分大小写
bool rsort ( array &array [, int sort_flags] ) 对数组进行逆向排序
bool asort ( array &array [, int sort_flags] ) 对数组进行排序并保持索引关系
bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) 对多个数组或多维数组进行排序
bool arsort ( array &array [, int sort_flags] ) 对数组进行逆序排序并保持索引关系
bool ksort ( array &array [, int sort_flags] ) 对数组按键名排序
bool krsort ( array &array [, int sort_flags] ) 对数组按键名逆序排序

合并,拆分,接合和分解数组
array array_combine ( array keys, array values ) 创建一个数组,一个数组的值作为其键名,另一个数组的值作为其值
array array_merge ( array array1 [, array array2 [, array ...]] ) 合并一个或多个数组
array array_merge_recursive ( array array1 [, array ...] ) 递归地全部一个或多个数组
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] ) 从数组中取出一段,建立一个新的数组,如果offset为正数,拆分从距数组开关的offset位置开始,如果为负数,则拆分从距数组末尾的offset 位置开始,此时距数组开关的count(input_array)-|length|位置结束
array array_splice ( array &input, int offset [, int length [, array replacement]] ) 把数组中的部分值去掉,并用其它值替代.offset设置同上
array array_intersect ( array array1, array array2 [, array ...] ) 计算数组的交集,即是说如果第一个数组中出现过的值在接下来的几个数组中都有出现,则取出该值
array array_intersect_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的交集
array array_intersect_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的交集
array array_diff ( array array1, array array2 [, array ...] ) 计算数组的差集, 即是说跟第一个数组中不同的值
array array_diff_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的差集
array array_diff_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的差集

其它比较有用的数组函数
数组函数还有好多没有列出来…再上几个比较有用也比较常的,其它的就参考手册啦…手册里很清楚
mixed array_rand ( array input [, int num_req] ) 数组中随机取出一个或多个键,num指定个数
bool shuffle ( array &array ) 将数组打乱
number array_sum ( array array ) 计算数组中所有值的总和,关联数组忽略
array array_chunk ( array input, int size [, bool preserve_keys] ) 将一个数组分割成几个

PHP 相关文章推荐
PHP新手上路(二)
Oct 09 PHP
有关php运算符的知识大全
Nov 03 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
php实现的操作excel类详解
Jan 15 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
php文件上传后端处理小技巧
May 22 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 #PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 #PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 #PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 #PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 #PHP
PHP 命名空间实例说明
Jan 27 #PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 #PHP
You might like
一些PHP写的小东西
2006/12/06 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
php远程下载类分享
2016/04/13 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
python3 图片referer防盗链的实现方法
2018/03/12 Python
Sanic框架Cookies操作示例
2018/07/17 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
sklearn+python:线性回归案例
2020/02/24 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
监理资料员岗位职责
2014/01/03 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python
部分武汉产收音机展览
2022/04/07 无线电
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js