PHP操作数组相关函数

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] ) 将一个数组分割成几个

时间: 2024-08-02 08:13:31

PHP操作数组相关函数的相关文章

PHP操作数组相关函数_php技巧

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,

php数组相关函数的使用

 创建数组就不再说了 array()函数 提取数组可以用list(). 测试数组元素 ,可以用is_array() 接受一个参数,传进来的变量,如果变量是数组,返回true如果不是返回false. 添加和删除数组元素 数组的fifo和lifo 先解释下什么是fifo和lifo 删除元素与加入元素的顺序相同,称为先进先出,既first-in-first-out 删除元素与加入元素的顺序相反,称为后进先出,既last-in-first-out 相对应的对数组的操作 array_unshift() i

PHP4.0数组相关函数的应用

函数|数组 (Coolman) 由于PHP具有快速.可靠.跨平台应用.源代码开放等特点,使得PHP成为最受欢迎的服务器端Script语言之一,今天在这里我和大家谈谈PHP4.0中数组相关函数应用的问题.PHP 4.0 提供了超过三十个 PHP 3.0 没有的数组相关函数以供程序设计员运用.这些函数里面常用的功能有:检查一个数组里面是否包含某个值,计算某个值在数组里面出现的次数,新增或者删除数组元素以及将数组元素重新排序等等,下面我将在这几方面与大家探讨. 1.检查数组中的值如果有一个很大的数组,

PHP数组相关函数汇总

 这篇文章主要介绍了PHP数组相关函数,汇总说明了php中相关的数组,具有一定参考借鉴价值,需要的朋友可以参考下     本文总结了PHP数组相关的函数.分享给大家供大家参考.具体如下: 这里包括函数名和用法说明,没有详细的代码范例.感兴趣的朋友可以查阅本站相关的函数用法. 数组的相关处理函数 current(数组名称) 输出数组中一个字符串的值,从第一个起. key(数组名称) 输出数组中一个下标,从第一个起. next(数组名称) 控制数组指针向后移动. prev(数组名称) 控制数组指针向

js操作数组函数实例小结_javascript技巧

本文实例讲述了js操作数组函数.分享给大家供大家参考,具体如下: 1.删除数组中指定的元素 /** * 参考实例 foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要处理的数组,obj==null 表示对象尚未存在:obj.constructor != Array 表示对象obj的属性的构造函数不是数组: //constructor属性始终指向创建当前

c语言-堆排序 —插入操作—数组设置的设置问题

问题描述 堆排序 -插入操作-数组设置的设置问题 求指教: 堆排序算法的C语言实现中,插入操作的时候,数组应该怎么设置? 解决方案 http://blog.csdn.net/xw20084898/article/details/39349191 解决方案二: 堆排序 c/c++实现

操作数组的常用方式一----获取数组元素中最大值和最小值

/** * 操作数组的常用方式 */ public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[] { 1, 3, 10, 2, 5, 7, 8 }; // 获取最大值,方式一 System.out.println(getMax(arr)); // 获取最大值,方式二 System.out.println(getMax2(arr)); // 获取最小值,方式一 System.out.

JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)_javascript技巧

POP 删除最后一项 删除最后一项,并返回删除元素的值:如果数组为空则返回undefine var a = [1,2,3,4,5]; a.pop();//a:[1, 2, 3, 4] a.pop();//a:[1, 2, 3] a.pop();//a:[1, 2] shift 删除第一项 删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefine var a = [1,2,3,4,5]; a.shift(); //a:[2,3,4,5] a.shift(); //a:[3, 4,

操作数组的常用方式二-----排序、查找

/** * 操作数组的常用方式 */ public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[] { 1, 3, 10, 2, 5, 7, 8 }; // 排序前 System.out.println("--------------------排序前--------------------"); printArray(arr); // 选择排序 // selectSort