·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 数组函数总结

数组函数总结

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
数组函数总结

本文档整理自php学习手册,在使用过程中发现数组函数大量使用,今天将它全部整理出来,便于以后查阅和使用。

  • array --- 建立新数组

语法 : array array([mixed ...]);

说明 :

传回参数的数组,参数能以"=>"运算子来给予索引值,此函数不是正规的函数,主要是用来表示数组。

$arr=array(0=>123,2=>’tere’);

array_count_values ---计算数组所有的值

语法 : array array_count_values(array input);

说明 :

此函数传回一计算后之数组结果,传回的数组其索引值为参数input的值,而数组的值则是参数input所出现的次数。

Example :

<?php

$array = array(1 , "hello" , 1 , "world" , "hello");

array_count_values($array); //returns array(1 => 2 , "hello" => 2 , "world" => 1)

?>

  • array_diff --- 计算数组的差异

语法 :array array_diff (array array1, array array2 [, array ...])

说明 :

Array_diff( )传回array1没有出现在其它引数之中的所有的值,此函数传回一数组型态,传回的数组其索引值将保留。

Example :

<?php

$array1 = array ("a" => "green", "red", "blue");

$array2 = array ("b" => "green", "yellow", "red");

$result = array_diff ($array1, $array2);

?>

这将使$result有着array("blue")

  • array_flip --- 翻转数组所有的值

语法 : array array_flip(array trans);

说明 :此函数传回翻转(flip)顺序的数组。

Example :

<?php

$trans = array_flip($trans);

$original = strtr($str , $trans);

?>

  • array_intersect --- 计算数组的交点

语法 :array array_intersect (array array1, array array2 [, array ...])

说明 :

Array_intersect( )传回array1出现在所有引数之中的所有的值,此函数将传回一数组型态,传回的数组其索引值将保留。

Example :

<?php

$array1 = array ("a" => "green", "red", "blue");

$array2 = array ("b" => "green", "yellow", "red");

$result = array_intersect ($array1, $array2);

?>

这将使$result有着array( "a" => "green" , "red" )

  • array_keys --- 传回数组的所有索引值

语法 :array array_keys(array input [ , mixed search_value] );

说明 :

此函数从参数input传回数字和字符串的索引值,参数search_value是非必需的,若有指定则只传回所指定的值的索引值,否则将从input传回所有的索引值。

Example :

<?php

$array = array(0 => 100, "color" => "red");

array_keys($array); // returns array(0, "color")

$array = array(1, 100, 2, 100);

array_keys($array, 100); // returns array(0, 2)

?>

  • array_merge --- 合并两个以上的数组

语法 :array array_merge(array array1, array array2 [ , array ...] );

说明 :

此函数将两个以上的数组合并在一起,如此一来它们的值则附加在先前的后面。若输入的数组有着相同的字符串索引值,则后来的值会将覆盖到之前的值,无论如何,数组有着相同的数字索引,但是随后的值将不会覆盖过原先的值,但是会被附加上。

Example :

<?php

$array1 = array("color" => "red", 2, 4);

$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid");

array_merge($array1, $array2);

?>

产生的数组将会是 array("color" => "green", 2, 4, "a", "b", "shape" => "trapezoid")

  • array_merge_recursive --- 以递归方式合并两个以上的数组

语法 :array array_merge_recursive (array array1, array array2 [, array ...])

说明 :

Array_merge_recursive( )将两个以上的数组合并在一起,如此一来它们的值则附加在先前的后面。

如果输入的数组有着相同的字符串索引值,则这些值会合并起来到数组中,而且是以递归的方式,如此一来假使值的本身是个数组,这个函数将会合并它在另一个数组之中。无论如何,数组有着相同的数字的索引,但是随后的值将不会覆盖过原先的值,但是会被附加上。

Example :

<?php

$ar1 = array ("color" => array ("favorite" => "red"), 5);

$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));

$result = array_merge_recursive ($ar1, $ar2);

?>

产生的数组将会是

array( "color" => array ( "favorite" => array( "red" , "green" ), "blue" ),5 ,10)

  • array_multisort --- 排序复合或多样尺寸的数组

语法 :bool array_multisort (array ar1 [,mixed arg [,mixed ...[,array...]]])

说明 :

Array_multisort( )能用来立刻将数个数组或多样尺寸(multi-dimensional)数组排序。

输入的数组被看作是表格(table)的栏位,依照列(rows)将它排序,这类似于SQL ORDER BY clause的功能,第一个数组是首要(PRimary)排序的数组,此数组中的列(值)以下一个输入的数组对照相同的排序。

这个函数的引数结构是个独特(unusual)位元,但是是可变通的。第一个引数必定是个数组,随后的引数可以是个数组或是下个列表的排序旗标(flag)之一。

排序顺序旗标 :

SORT_ASC - 排序成上升的顺序

SORT_DESC - 排序成下降的顺序

排序型态旗标 :

SORT_REGULAR - 正常的比较项目

SORT_NUMERIC - 以数字比较项目

SORT_STRING - 看作是字符串来比较项目

不能使用二个相同型态的旗标指定在各各数组之后,排序的旗标指定在数组引数的后面,只对此数组起作用,其它的将重设为预设的SORT_ASC和SORT_REGULAR在数组引数之后。

成功则传回true,失败则传回false。

Example :

<?php

$ar1 = array ("10", 100, 100, "a");

$ar2 = array (1,3,"2",1);

array_multisort ($ar1,$ar2);

?>

此范例排序后,第一个数组将会是10 , "a" , 100 , 100,第二个数组将会是1 , 1 , 2 , "3"。

Example :

<?php

$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));

array_multisort ($ar[0], SORT_ASC, SORT_STRING,

$ar[1], SORT_NUMERIC, SORT_DESC);

?>

在此范例排序后,第一个数组将会是10 , 100 , 100 , "a" (它被看作是字符串且上升排序),且第二个数组将会是1 , 3 , "2" , 1(它被看作是数值且下降排序)。

  • array_pad --- 填塞数组为指定的长度与值

语法 :array array_pad(array input, int pad_size, mixed pad_value);

说明 :

此函数将数组array填塞成大小为pad_size和值为pad_value的数组,且将填塞后的数组传回,若参数pad_size是一正数,则填塞在数组的右方,若为负数,则填塞在数组的左方。如果参数pad_size的绝对值小于或等于数组input的长度,则将不填塞。

Example :

<?php

$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);

// result is array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);

// result is array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");

// not padded

?>

  • array_pop --- 取得数组的最后一个元素

语法 :mixed array_pop(array array);

说明 :此函数传回数组array的最后一个元素,将数组array缩短一个元素。

Example :

<?php

$stack = array("orange", "apple", "raspberry");

$fruit = array_pop($stack);

?>

在此之后,$stack只有二个元素"orange"与"apple",且$fruit为"raspberry"。

  • array_push --- 增加一个或多个元素到数组的末端之上

语法 :int array_push(array array, mixed var [ , mixed ...] );

说明 :

此函数将参数array看做是一叠(stack),且延伸变量在参数array的末端之上,参数array的长度依照变量的数目而增加。

有着相同的效果是 :

<?php

$array[ ] = $var;

?>

重覆各个var。

传回数组中元素的新数目。

Example :

<?php

$stack = array(1, 2);

array_push($stack, "+", 3);

?>

此范列将会使$stack有四个元素:1,2,"+"和3

  • array_rand --- 随机挑选数组的一个或多个值出来

语法 :mixed array_rand (array input [, int num_req])

说明 :

Array_rand( )当你想要随机挑选数组的一个或多个值出来时相当有用,引数num_reg是非必需的,它指出你想要挑选出几个值出来,如果没有指定,则它的预设值是1。

如果你只挑选一个值,array_rand( )传回随机值的索引。否则,它传回随机值的索引放在数组中,将此数组传回。如此一来你不但可以挑选随机索引值而且可将数组的值输出。

别忘了呼叫srand( )来设定乱数种子。

Example :

<?php

srand ((double) microtime() * 10000000);

$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");

$rand_keys = array_rand ($input, 2);

print $input[$rand_keys[0]]."\n";

print $input[$rand_keys[1]]."\n";

?>

  • array_reverse --- 传回颠倒元素顺序的数组

语法 :array array_reverse(array array);

说明 :此函数将参数array的元素顺序颠倒,且传回新的数组。

Example :

<?php

$input = array("php", 4.0, array("green", "red"));

$result = array_reverse($input);

?>

此范列使$result成为array(array("green", "red"), 4.0, "php")。

  • array_shift --- 取得数组的第一个元素

语法 :mixed array_shift(array array);

说明 :

此函数移动数组array的第一个元素并将它传回,将数组array缩短一个元素,并且全部向下移动。

Example :

<?php

$args = array("-v", "-f");

$opt = array_shift($args);

?>

此范例将会使$arge有一个元素"-f",且$opt有着"-v"。

  • array_slice --- 抽出数组的一部份

语法 :array array_slice(array array, int offset, int [length] );

说明 :

此函数从数组array传回元素的一部份,若offset为正数,则取回的部份将起始于数组中的offset处;若offset为负数,则从数组的末端开始。若length有给予且是正数,将会取回length个元素,若length是负数,则会停止于数组末端处第length个元素,若省略此参数,则传回的部份将会从offset直到数组的末端。

Example :

<?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 "c", "d"

$output = array_slice($input, -2, 1); // returns "d"

$output = array_slice($input, 0, 3); // returns "a", "b", and "c"

?>

  • array_splice --- 移除数组的一部份且替代它

语法 :array array_splice(array input, int offset, int [length] , array