PHP Array 函数允许您访问并 *** 作数组。 函数 描述 array() 创建数组。 array_change_key_case() 返回其键均为大写或小写的数组。 array_chunk() 把一个数组分割为新的数组块。 array_column() 返回输入数组中某个单一列的值。 array_combine() 通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。 array_count_values() 用于统计数组中所有值出现的次数。 array_diff() 比较数组,返回两个数组的差集(只比较键值)。 array_diff_assoc() 比较数组,返回两个数组的差集(比较键名和键值)。 array_diff_key() 比较数组,返回两个数组的差集(只比较键名)。 array_diff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。 array_diff_ukey() 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。 array_fill() 用给定的键值填充数组。 array_fill_keys() 用给定的指定键名的键值填充数组。 array_filter() 用回调函数过滤数组中的元素。 array_flip() 反转/交换数组中的键名和对应关联的键值。 array_intersect() 比较数组,返回两个数组的交集(只比较键值)。 array_intersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值)。 array_intersect_key() 比较数组,返回两个数组的交集(只比较键名)。 array_intersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。 array_intersect_ukey() 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。 array_key_exists() 检查指定的键名是否存在于数组中。 array_keys() 返回数组中所有的键名。 array_map() 将用户自定义函数作用到给定数组的每个值上,返回新的值。 array_merge() 把一个或多个数组合并为一个数组。 array_merge_recursive() 递归地把一个或多个数组合并为一个数组。 array_multisort() 对多个数组或多维数组进行排序。 array_pad() 将指定数量的带有指定值的元素插入到数组中。 array_pop() 删除数组中的最后一个元素(出栈)。 array_product() 计算数组中所有值的乘积。 array_push() 将一个或多个元素插入数组的末尾(入栈)。 array_rand() 从数组中随机选出一个或多个元素,返回键名。 array_reduce() 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。 array_replace() 将所有被替换数组中的元素替换成第一个数组。 array_replace_recursive() 将所有被替换数组中的元素递归地替换成第一个数组。 array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。 array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。 array_shift() 删除数组中的第一个元素,并返回被删除元素的值。 array_slice() 返回数组中的选定部分。 array_splice() 把数组中的指定元素去掉并用其它值取代。 array_sum() 返回数组中所有值的和。 array_udiff() 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。 array_udiff_assoc() 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。 array_udiff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。 array_uintersect() 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。 array_uintersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。 array_uintersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。 array_unique() 删除数组中重复的值。 array_unshift() 在数组开头插入一个或多个元素。 array_values() 返回数组中所有的值。 array_walk() 对数组中的每个成员应用用户函数。 array_walk_recursive() 对数组中的每个成员递归地应用用户函数。 arsort() 对关联数组按照键值进行降序排序。 asort() 对关联数组按照键值进行升序排序。 compact() 创建一个包含变量名和它们的值的数组。 count() 返回数组中元素的数目。 current() 返回数组中的当前元素。 each() 返回数组中当前的键/值对。 end() 将数组的内部指针指向最后一个元素。 extract() 从数组中将变量导入到当前的符号表。 in_array() 检查数组中是否存在指定的值。 key() 从关联数组中取得键名。 krsort() 对关联数组按照键名降序排序。 ksort() 对关联数组按照键名升序排序。 list() 把数组中的值赋给一些数组变量。 natcasesort() 用自然排序算法对数组进行不区分大小写字母的排序。 natsort() 用自然排序算法对数组排序。 next() 将数组中的内部指针向前移动一位。 pos() current() 的别名。 prev() 将数组的内部指针倒回一位。 range() 创建一个包含指定范围的元素的数组。 reset() 将数组的内部指针指向第一个元素。 rsort() 对数值数组进行降序排序。 shuffle() 把数组中的元素按随机顺序重新排列。 sizeof() count() 的别名。 sort() 对数值数组进行升序排序。 uasort() 使用用户自定义的比较函数对数组中的键值进行排序。 uksort() 使用用户自定义的比较函数对数组中的键名进行排序。 usort() 使用用户自定义的比较函数对数组进行排序。
就像---》QQ632107671 他说的,这是自定义函数,不是php的内建函数。
这种函数一般会被程序员定义在专门存放函数的文件或者当前页面。
当然,如果是thinkphp框架这种,有专门定义自定义函数的文件---》Commom/commonphp
数组是PHP程序设计中十分重要的一环。本文介绍PHP中数组函数array_map()的用法,实现将回调函数作用到给定数组单元上。具体如下:
array
array_map
(
callable
$callback
,
array
$arr1
[,
array
$
]
)
array_map()
返回一个数组,该数组包含了
arr1
中的所有单元经过
callback
作用过之后的单元。
callback
接受的参数数目应该和传递给
array_map()
函数的数组数目一致。
示例程序如下:
function
fun($n)
{
return
$n
$n
$n;
}
$a
=
array(1,
2,
3,
4,
5);
$b
=
array_map('fun',
$a);
/
每个数组单元作三次方运算,返回数组
/
print_r($b);
输出结果为:
Array
(
[0]
=>
1
[1]
=>
8
[2]
=>
27
[3]
=>
64
[4]
=>
125
)
此外,array_map()函数还有如下几种用法:
array_map('unlink',
glob('txt'));/
glob返回"文件名txt"组成的数组,然后对每个文件进行删除 *** 作/
array_map('unlink',
glob(''));
array_map('unlink',
glob(''));
如果不使用array_map(),对数组每个单元进行 *** 作就只能遍历然后适当组装。
更多的应用读者可以根据具体的项目需求进行挖掘。
array_splice() 删除数组中的指定元
array_splice(数组名,从前往后删的个数,new一个数组的大小);没有第三参数也就没有返数组,没有第三个参数时,第二个参数的意义为从前往后保留几个
exp:
<php $my_array=array( //建立数组 "hehe"=>"haha", "A"=>"lu", "lu"=>"ge" ); $new=array_splice($my_array,1,3); //使用array_splice(数组名,从前往后删的个数,new一个数组的大小); var_dump($new); >
结果:array(2) { ["A"]=> string(2) "lu" ["lu"]=> string(2) "ge" }
2、foreach()数组的遍历
用法:foreach(数组 as 键名=>键值)或foreach(数组 as 键值)
exp:
<php $my_array=array( //建立数组 "hehe"=>"haha", "A"=>"lu", "lu"=>"ge" ); foreach($my_array as $key=>$value) { echo $key"=>"$value"<br/>"; } >
输出结果:
hehe=>haha A=>lu lu=>ge
3、数组的排序
(1)sort()和rsort() 按键值排序sort()从小到大,rsort()从大到小
sort () exp :
<php $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组 sort($my_array); foreach($my_array as $keys=>$value) { echo $keys"=>"$value"<br/>"; } >
输出结果:
0=>1 1=>2 2=>3 3=>4 4=>5 5=>6 6=>7 7=>8 8=>9
rsort() exp:
<php $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组 rsort($my_array); foreach($my_array as $keys=>$value) { echo $keys"=>"$value"<br/>"; } >
输出结果:
0=>9 1=>8 2=>7 3=>6 4=>5 5=>4 6=>3 7=>2 8=>1
(2)asort()和arsort()和上面的原理一样,不过不改变键名和键值的对应关系
exp:
<php $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组 asort($my_array); foreach($my_array as $keys=>$value) { echo $keys"=>"$value"<br/>"; } >
输出结果:
0=>1 1=>2 2=>3 7=>4 8=>5 3=>6 4=>7 5=>8 6=>9
(3)ksort()和krsort()是按键名的大小排序
4数组的数学类函数
array_sum()计算数组的所有键值的和 count()计算元素的个数
exp:
<php $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组 echo array_sum($my_array); >
输出结果:45
5其他函数
array_unique() 去除数组中的相同元素
in_array()检测一个值是否在数组中(返回true和false)
array_search()返回的是键或值,返回的是键值所对应的键名
shuffle()打乱原有的数组
<php $my_array=array(1,2,3,6,7,8,9,4,5,5,5,5);//建立数组 array_unique($my_array);//去除数组中的相同元素 var_dump($my_array); echo "<br/>"; echo in_array(5,$my_array); echo "<br/>"; $new=array_search(6,$my_array);//返回的是键值所对应的键名 echo $new; >
输出结果:
array(12) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(6) [4]=> int(7) [5]=> int(8) [6]=> int(9) [7]=> int(4) [8]=> int(5) [9]=> int(5) [10]=> int(5) [11]=> int(5) } 1 3
下边提到的几个数组函数的排序有一些共性 数组被作为排序函数的参数 排序以后 数组本身就发生了改变 函数的返回值为bool类型 函数名中出现单a表示association 含义为 在按值排序的过程中 保持key=>value的对应关系不变 函数名中出现单k表示key 含义为 在按值排序的过程中按照数组key而不是数组的值排序 函数名中出现单r的表示reverse 含义为 按照跟不加r的相反的顺序排列 函数名中出现单u的表示user defined 含义为 使用用户自定义函数排序 如果函数的逻辑是参数 <参数 返回负数 则按照升序排列(p 小 返负升) sort函数升序排序
复制代码 代码如下: bool sort ( array &$array [ int $sort_flags= SORT_REGULAR ] ) <php $fruits = array("lemon" "orange" "banana" "apple"); sort($fruits); var_dump($fruits); > 结果 array => string apple (length= ) => string banana (length= ) => string lemon (length= ) => string orange (length= )rsort降序排列
复制代码 代码如下: <php $fruits = array("lemon" "orange" "banana" "apple"); rsort($fruits); var_dump($fruits); > 结果 array => string orange (length= ) => string lemon (length= ) => string banana (length= ) => string apple (length= )asort按照二维数组值的升序排列(保持key=>value的关联关系)
复制代码 代码如下: <php $fruits = array("d" => "lemon" "a" => "orange" "b" => "banana" "c" => "apple"); asort($fruits); var_dump($fruits); > 结果 array c => string apple (length= ) b => string banana (length= ) d => string lemon (length= ) a => string orange (length= )arsort按照二维数组值的降序排列(保持key=>value的关联关系)
复制代码 代码如下: <php $fruits = array("d" => "lemon" "a" => "orange" "b" => "banana" "c" => "apple"); arsort($fruits); var_dump($fruits); > 结果 array a => string orange (length= ) d => string lemon (length= ) b => string banana (length= ) c => string apple (length= )ksort按照数组的key升序排列
复制代码 代码如下: <php $fruits = array("d"=>"lemon" "a"=>"orange" "b"=>"banana" "c"=>"apple"); ksort($fruits); var_dump($fruits); > 结果 array a => string orange (length= ) b => string banana (length= ) c => string apple (length= ) d => string lemon (length= )
krsort按照数组key的降序排列
复制代码 代码如下: <php $fruits = array("d"=>"lemon" "a"=>"orange" "b"=>"banana" "c"=>"apple"); krsort($fruits); var_dump($fruits); > array d => string lemon (length= ) c => string apple (length= ) b => string banana (length= ) a => string orange (length= )usort函数按照用户自定义的函数排序
复制代码 代码如下: <php function cmp($a $b) { if ($a == $b) { return ; } return ($a < $b) : ; } $a = array( ); usort($a "cmp"); var_dump($a); >结果 array => int => int => int => int => int uksort使用自定义函数按照数组的key排序
复制代码 代码如下: <php function cmp($a $b) { $a = preg_replace( @^(a|an|the) @ $a); $b = preg_replace( @^(a|an|the) @ $b); return strcasecmp($a $b); } $a = array("John" => "the Earth" => "an apple" => "a banana" => ); uksort($a "cmp"); var_dump($a); >结果 array an apple => int a banana => int the Earth => int John => int uasort将数组用自定义函数按照value排序 保持索引关系不变
复制代码 代码如下: <php // Comparison function function cmp($a $b) { if ($a == $b) { return ; } return ($a < $b) : ; } // Array to be sorted $array = array( a => b => c => d => e => f => g => h => ); var_dump($array); // Sort and print the resulting array uasort($array cmp ); var_dump($array); >结果 array a => int b => int c => int d => int e => int f => int g => int h => int array d => int h => int c => int e => int g => int a => int f => int b => int array_multisort排序多个数组或多维数组
复制代码 代码如下: <php $ar = array( array(" " "a") array( " " ) ); array_multisort($ar[ ] SORT_ASC SORT_STRING $ar[ ] SORT_NUMERIC SORT_DESC); var_dump($ar); >结果 array => array => string (length= ) => int => int => int => string a (length= ) => array => int => int => string (length= ) => int => int //说明 上例中 $ar数组优先按照$ar[ ]的字符串值升序排列 如果字符串值相等 再按照$ar[ ]数组的数字值降序排列 array_multisort函数的任意一个位置的参数如果是数组 表示排序时用的值 如果有多个数组参数 优先按照前边的数组值进行排序 如果是常量 例如 SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING 表示排序方法(数组取值前优先) ========================================================================================== PHP二维数组排序函数 PHP一维数组的排序可以用sort() asort() arsort()等函数 但是PHP二维数组的排序需要自定义 以下函数是对一个给定的二维数组按照指定的键值进行排序 先看函数定义
复制代码 代码如下: function array_sort($arr $keys $type= asc ){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == asc ){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] = $arr[$k]; } return $new_array; }它可以对二维数组按照指定的键值进行排序 也可以指定升序或降序排序法(默认为升序) 用法示例
复制代码 代码如下: $array = array( array( name => 手机 brand => 诺基亚 price => ) array( name => 笔记本电脑 brand => lenovo price => ) array( name => 剃须刀 brand => 飞利浦 price => ) array( name => 跑步机 brand => 三和松石 price => ) array( name => 手表 brand => 卡西欧 price => ) array( name => 液晶电视 brand => 索尼 price => ) array( name => 激光打印机 brand => 惠普 price => ) ); $ShoppingList = array_sort($array price ); print_r($ShoppingList); lishixinzhi/Article/program/PHP/201311/21145
array_intersect() 函数返回两个或多个数组的交集数组。
结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。
例子
<php
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_intersect($a1,$a2));
>
输出
例子
<php
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_intersect($a1,$a2));
>输出:
Array ( [1] => Dog [2] => Horse )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)