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 相关文章推荐
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
php中session退出登陆问题
Feb 27 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
php实现微信发红包功能
Jul 13 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
PHP实现八皇后算法
May 06 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
Laravel下生成验证码的类
2017/11/15 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
php接口隔离原则实例分析
2019/11/11 PHP
JavaScript的parseInt 取整使用
2011/05/09 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
python简单商城购物车实例代码
2018/03/15 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
python实现简单遗传算法
2020/09/18 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
2019史上最全Database工程师题库
2015/12/06 面试题
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
励志演讲稿大全
2014/08/21 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android