PHP5 数组函数总结

kevinlou 贡献于2012-11-05

作者 060  创建于2012-09-25 10:19:00   修改者060  修改于2012-09-25 10:52:00字数6985

文档摘要:不熟悉这个的我就不想多说了!最基本的函数,当然要输出数组也可是使用循环结构输出,不过有这么方便的输出函数干吗不用呢!Creatingarraysarray()这个函数我也不想说了,这其实只能算语言结构,大家在新建数组的时候都用到过,没用过的我只能说,兄弟,我无语了!list()这个函数和上面提到的array()一样,只是个语言结构,它通过一步操作给一组变量赋值!具体示例请查看手册!
关键词:

PHP5数组函数总结 数组函数一般归为 以下几类: Outputting arrays Creating arrays Testing for an array Locating array elements Traversing arrays Determining array size and element uniqueness Sorting arrays Merging, slicing, splicing, and dissecting arrays Outputting arrays print_r() 不熟悉这个的我就不想多说了!最基本的函数,当然要输出数组也可是使用循环结构输出,不过有这么方便的输出函数干吗不用呢! Creating arrays array() 这个函数我也不想说了,这其实只能算语言结构,大家在新建数组的时候都用到过,没用过的我只能说,兄弟,我无语了! list() 这个函数和上面提到的array()一样,只是个语言结构,它通过一步操作给一组变量赋值! 具体示例请查看手册! range(); array range ( mixed low, mixed high[, number step] ) 建立一个包含指定范围单元的数组 示例:$arr =range(0, 6); 相当于$arr =array(0, 1, 2, 3, 4, 5, 6); 一般数据按从低到高排列,如果low> high,则从高到低排列; Testing for an array is_array(); 测试变量是否array类型,是则返回true,不是则返回false,很基本,很实用的函数! Adding and removing array elements array_push() int array_push ( array &target_array,mixed var [, mixed ...] ) 将一个或多个单元从末尾添加至数组!返回新数组的单元总数! 示例: 复制PHP内容到剪贴板 PHP代码: $states =array(‘Ohio’, ‘New York’); array_push($states, ‘California’,‘Texas’); //output: array((‘Ohio’,‘New York’ , ‘California’,‘Texas’); array_pop(); 弹出并返回数组的最后一个单元,并将数组长度减一。使用后会重置数组指针! 示例: 复制PHP内容到剪贴板 PHP代码: $states =array(‘Ohio’, ‘New York’); $state = array_pop($states); //output: New York array_shift(); 与array_pop类似,只不过它移出和返回的是数组的第一个值。数字键名将重新从零开始记数,文字键名则保持不变! array_unshift(); 与array_push类似,只不过是从数组头部插入数据!数字键名将重新从零开始记数,文字键名则保持不变! array_pad(); array array_pad ( array input, intpad_size, mixed pad_value ) 用值将数组填充到指定长度! pad_size为正,则从右侧开始填补,为负,从左侧开始填补,小与数组长度,则保持数组不变!示例见手册! Locating array elements in_array(); 检查数组中是否存在某个值,基础,不说了,具体见手册! array_keys(); array array_keys ( array input [,mixed search_value [, bool strict]] ) 返回数组中的所有键名。如果选定search_value,则返回选定的键名!自PHP 5]起,可以用strict参数来进行全等比较(===)。 array_key_exists(); bool array_key_exists ( mixed key,array search ) 检查给定的键名或索引是否存在于数组中,存在则返回true。一些更具体的应用记得查看手册! array_values(); array array_values ( array input ) 与array_keys()类似!返回的是数组的所有键值! array_search(); mixed array_search ( mixed needle,array haystack [, bool strict] ) 在 haystack中搜索 needle参数并在找到的情况下返回键名,否则返回FALSE。 如果needle是字符串,则比较区分大小写! 如果strict是true,还得比较类型 如果needle在haystack中出现不止一次,则返回第一个匹配的键。要返回所有匹配值的键,应该用array_keys()加上可选参数search_value来代替! Traversing arrays key(); mixed key ( array &array ) 返回数组中当前单元的键名! reset(); 重置数组的指针。 each(); 返回数组中当前单元的键/值对,并将指针下移一位! current(); 返回当前被内部指针指向的数组单元的值,并不移动指针。如果超出了单元列表的末端,则返回false。 end(); 将array的内部指针移动到最后一个单元并返回其值。 next(); 返回数组内部指针指向的下一个单元的值,或当没有更多单元时返回 FALSE。 prev(); 返回数组内部指针指向的前一个单元的值,或当没有更多单元时返回 FALSE。 array_walk(); bool array_walk ( array &array,callback funcname [, mixed userdata] ) 具体描述请参考手册! 示例: array_reverse(); array array_reverse ( array array [,bool preserve_keys] ) 接受数组array作为输入并返回一个单元为相反顺序的新数组,如果preserve_keys为TRUE则保留原来的键名。 示例: 复制PHP内容到剪贴板 PHP代码: $states =array(‘Delaware’, ‘Pennsylvania’,‘New Jersey’); print_r(array_reverse($states)); //Array ([0]=>New Jersey [1]=>Pennsylvania[2]=>Delaware) $states = array(‘Delaware’, ‘Pennsylvania’, ‘New   Jersey’); print_r(array_reverse($states, 1)); //Array ([2]=>New Jersey [1]=>Pennsylvania[0]=>Delaware) array_flip(); array array_flip ( array trans ) 交换数组中的键/值对,注意 trans 中的值需要能够作为合法的键名,例如需要是 integer或者string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。 如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。 示例: 复制PHP内容到剪贴板 PHP代码: $trans =array("a" => 1, "b" => 1, "c" => 2); $trans = array_flip($trans); print_r($trans); //Array([1]=>b[2]=>c ); Determining array size and element uniqueness count(); 计算数组中的单元数目或对象中的属性个数,很基本哦! array_count_values(); 返回一个数组,该数组用input数组中的值作为键名,该值在input数组中出现的次数作为值。 示例: 复制PHP内容到剪贴板 PHP代码: $array= array(1, "hello", 1, "world", "hello"); print_r(array_count_values ($array)); array_unique(); array array_unique ( array array ) 接受 array作为输入并返回没有重复值的新数组。 示例: 复制PHP内容到剪贴板 PHP代码: $input =array("a" => "green", "red", "b"=> "green", "blue", "red"); $result = array_unique($input); print_r($result); 详细用法请参见手册! Sorting arrays sort(); 本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。 注意: 本函数为array中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 natsort(); 利用自然排序法对数组进行排序! 示例: 复制PHP内容到剪贴板 PHP代码: $array1 =$array2 = array("img12.png", "img10.png","img2.png", "img1.png"); sort($array1); echo "Standard sorting\n"; print_r($array1); natsort($array2); echo "\nNatural order sorting\n"; print_r($array2); natcasesort(); 与natsort()一致,除了不区分大小写! rsort(); 与sort()一致,这个是逆向排序。 asort(); 与sort()一直,但保持键名不变。 array_multisort(); 对多个数组或多维数组进行排序,具体参考手册,有详细说明! arsort(); 与rsort()类似,但保持键名不变。 ksort(); 与sort()类似,对键名进行排序。 krsort(); 与ksort()类似,但是逆向排序。 usort(); 利用用户自定义函数对数组进行排序! Merging, slicing, splicing, and dissectingarrays array_combine(); array array_combine ( array keys,array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_merge(); array array_merge ( array array1 [,array array2 [, array ...]] ) 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。 然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 示例: 复制PHP内容到剪贴板 PHP代码: $array1 =array("color" => "red", 2, 4); $array2 = array("a", "b", "color" =>"green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result); 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。 复制PHP内容到剪贴板 PHP代码: $array1 = array(); $array2 = array(1 => "data"); $result = array_merge($array1, $array2); 如果你想完全保留原有数组并只想新的数组附加到后面,用+运算符: 复制PHP内容到剪贴板 PHP代码: $array1 = array(); $array2 = array(1 => "data"); $result = $array1 + $array2; array_merge_recursive(); array array_merge_recursive ( arrayarray1 [, array ...] ) 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。 复制PHP内容到剪贴板 PHP代码: $ar1 = array("color" =>array("favorite" => "red"), 5); $ar2 = array(10, "color" => array("favorite" =>"green", "blue")); $result = array_merge_recursive($ar1, $ar2); print_r($result); 更详细的使用请参加手册! array_slice(); array array_slice ( array array, intoffset [, int length [, bool preserve_keys]] ) 从数组中取出一段。 如果offset非负,则序列将从array中的此偏移量开始。如果offset为负,则序列将从array中距离末端这么远的地方开始。 如果给出了length并且为正,则序列中将具有这么多的单元。如果给出了length并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从offset开始一直到array的末端。 示例: 复制PHP内容到剪贴板 PHP代码: $input = array("a","b", "c", "d", "e"); $output = array_slice($input, 2);      // returns"c", "d", and "e" $output = array_slice($input, -2, 1);  // returns "d" $output = array_slice($input, , 3);   // returns "a","b", and "c" // note the differences in the array keys print_r(array_slice($input, 2, -1)); print_r(array_slice($input, 2, -1, true)); array_splice(); array array_splice ( array&input, int offset [, int length [, array replacement]] ) 把input数组中由offset和length指定的单元去掉,如果提供了replacement参数,则用replacement数组中的单元取代。返回一个包含有被移除单元的数组。注意input中的数字键名不被保留。 如果offset非负,则序列将从array中的此偏移量开始。如果offset为负,则序列将从array中距离末端这么远的地方开始。 如果给出了length并且为正,则序列中将具有这么多的单元。如果给出了length并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从offset开始一直到array的末端。 具体应用参见手册! array_intersect(); array array_intersect ( arrayarray1, array array2 [, array ...] ) 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 示例: 复制PHP内容到剪贴板 PHP代码: $array1 =array("a" => "green", "red","blue"); $array2 = array("b" => "green", "yellow","red"); $result = array_intersect($array1, $array2); array_intersect_assoc(); 注意和array_intersect()不同的是键名也用于比较。 array_diff(); 与array_intersect()类似,只不过它是计算数组的差集 array_diff_assoc(); 与array_intersect_assoc()类似,只不过它是计算数组的差集 Other useful array functions array_rand(); mixed array_rand ( array input [,int num_req] ) 从数组中随机取出一个或多个单元。 shuffle(); bool shuffle ( array &array ) 本函数打乱(随机排列单元的顺序)一个数组。 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 array_sum(); 将数组中的所有值的和以整数或浮点数的结果返回。 array_chunk(); array array_chunk ( array input, intsize [, bool preserve_keys] ) 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始。 将可选参数preserve_keys 设为 TRUE,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档