felayman——array数组

本文详细介绍了PHP中的数组概念、创建及各种数组操作函数的使用方法,包括数组的排序、合并、筛选等功能,适合初学者和进阶开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

header("content-type:text/html;charset=utf-8");

?>

<?php

/*

PHP支持单维和多维的数组。同时提供了用数据库查询结果来构造数组的函数。

一、所有数组的相关函数

1、array() 创建一个数组

2、array_change_key_case() 返回键值均为大写或者小写的数组

3、ayyay_chunk() 把一个数组分割为新的数组块

4、array_combine() 通过合并两个数组来创建一个新的数组

5、ayyay_count_values() 用于统计数组中所有制出现的次数

6、array_diff() 返回两个数组的差集数组

7、array_diff_assoc() 比较键值和健名,并返回两个数组的差集数组

8、array_diff_key() 比较键名,并返回两个两个数组的差集数组

9、array_diff_uassoc() 通过用户提供的回调函数做索引检查来计算数组的差集

10、array_diff_ukey() 通过回调函数对键名比较计算数组的差集

11、array_fill() 用给定的值来填充数组

12、array_filter() 用回调函数来过滤数组中的元素

13、array_flip() 交换数组中的键和值

14、array_intersect() 计算数组的交集

15、array_intersect_assoc() 比较键和值,并返回两个数组的交集数组

16、array_intersect_key() 使用键名比较数组计算数组的交集

17、array_intersect_uassoc() 带索引检查计算数组的交集,用回调函数比较索引

18、array_intersect_ukey() 使用键名来比较计算数组的交集

19、array_key_exists() 检查给定键名或索引是否存在于数组中

20、array_keys() 返回数组中的所有键名

21、array_map() 将回调函数作用到给定数组单元上

22、array_merge() 将一个或者多个数组合并为一个数组

23、array_merger_recursive 递归的合并一个或者多个数组

24、arsort() 对数组进行逆向排序并保持索引关系

25、asort() 对数组进行排序并保持索引关系

26、compact() 建立一个数组,包括他们变量名和值

27、count() 计算数组元素个数

28、current() 返回数组中的当前元素

29、each() 返回数组中的当前的键/值并将数组指针向前移动一个单位

30、end() 将数组指针指向数组的最后一个元素

31、extract() 从数组中将变量导入到当前的符号表

32、in_array() 检查数组中是否存在指定的值

33、key() 从关联数组中取出键名

34、krsort() 对数组按照键名逆向排序

35、ksort() 对数组按照键名排序

36、list() 将数组中的值赋给一些变量

37、natcasesort() 用自然排序算法对数组进行不区分大小写字母的排序

38、natsort() 用自然算法对数组进行排序

39、next() 将数组中的内部指针向前进一位

40、pos() current() 的别名。

41、prev() 将数组中的内部指针倒回一位

42、range() 建立一个包含指定范围的元素的数组

43、reset() 将数组的内部指针指向第一个元素

44、rsort() 对数组进行逆向排序

45、shuffle 把数组中的元素按照随机顺序重新排列

46、sizeof() count() 的别名。

47、sort() 对数组进行排序

48、uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

49、uksort() 使用用户自定义的比较函数对数组中的键名进行排序。

50、usort() 使用用户自定义的比较函数对数组中的值进行排序。

二、PHP中所有的数组常量

1.CASE_LOWER 用在 array_change_key_case() 中将数组键名转换成小写字母。

2.CASE_UPPER 用在 array_change_key_case() 中将数组键名转换成大写字母。

3.SORT_ASC 用在 array_multisort() 函数中,使其升序排列。

4.SORT_DESC 用在 array_multisort() 函数中,使其降序排列。

5.SORT_REGULAR 用于对对象进行通常比较。

6.SORT_NUMBERIC 用于对对象进行数值比较。

7.SORT_STRING 用于对对象进行字符串比较。

8.SORT_LOCALE_STRING 基于当前区域来对对象进行字符串比较。

9.COUT_NARMAL

10.COUT_RECUIRSIVE

11.EXTR_OVERRIDE

12.EXTR_SKIP

13.EXTR_PREFIX_ALL

14.EXTRPREFIX_INVALID

15.EXTR_IF_EXISTS

16.EXTR_REFS

*/

/******************下面对所有array数组函数进行实例说明************************************/

//1.array() 创建数组

$arr1 = array(1,2,3,4,5,6,7,8);

$arr11 = array(1,1,2,2,3,4,5,4,3,5);

$arr2 = array("i","love","you",",","my","countroy","-","China");

$arr3 = array(1=>"i",2=>"am",3=>"a",4=>"student",5=>".");

$arr4 = array("name"=>"felayman","age"=>"22","sex"=>"男","address"=>"北京通州区");

print_r($arr1);echo '<hr>';print_r($arr2);echo '<hr>';print_r($arr3);echo '<hr>';print_r($arr4);echo '<hr>';

//2.多维数组

$arr5 = array(

array(1,2,3,4,5),

array('2','3','4','5','6'),

array(1=>'2',2=>'3',3=>'4'),

array("name"=>"felayman","age"=>"22")

);

print_r($arr5);echo "<hr>";

//3.array_change_key_case() 将数组中的所有键名都转换为大写或者小写

print_r(array_change_key_case($arr4,CASE_UPPER));

echo "<hr>";

//4.array_chunk() 把一个数组分割为新的数组块

print_r(array_chunk($arr1,4,true));echo "<hr>";

//5.array_combine()array_combine() 通过合并两个数组来创建一个新数组,一个数组是键名,另一个数组的值为键值

print_r(array_combine($arr1,$arr2));echo "<hr>";

//6.array_count_values()于统计数组中所有值出现的次数。

print_r(array_count_values($arr1));echo '<hr>';

//7.array_diff()返回两个数组的差集数组。

print_r(array_diff($arr1,$arr11));echo '<hr>';

//8.array_diff_assoc()函数返回两个数组的差集数组和 array_diff() 函数 不同,本函数要求键名和键值都进行比较。返回的数组中键名保持不变。

print_r(array_diff_assoc($arr1,$arr11));echo '<hr>';

//9.array_diff_keyarray_diff_key() 函数返回一个数组,该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键。

//注意----第一个元素是被比较的元素

$array1 = array(1=>"100",2=>"200",3=>"300");$array2 = array(1=>"1000",2=>"200",3=>"3000",4=>"4000");

print_r(array_diff_key($array2,$array1));echo '<hr>';echo count(array_diff_key($array2,$array1));echo '<hr>';

foreach(array_diff_key($array2,$array1) as $key=>$value)

echo $key.'==='.$value.'\t';

echo '<hr>';

//10.array_diff_uassoc(array1,array2,array3...,function)该数组包括了在 array1 中但是不在任何其他参数数组中的值。与 array_diff() 函数 不同的是,键名也要进行比较。function的参数为:两个要进行对比的键名

/*

//功能:

1. 该函数将返回一个数组

2. 该数组包含了所有在array1中但是不在其他任何参数数组中的值

3. 如果认为第一个参数小于、等于、或大于第二个参数时,必须返回一个小于零、等于零,或大于零的整数

//使用范围:

php5(我用5.1.6测试过该函数,是不正确的。5.3.3是正确的,具体哪些版本好使有待验证)

//特别说明:function必须返回一个整型值(大小,正负不限)

//通俗点就是根据key来比较数组来取差集

*/

$arr1 = array(1=>'1',2=>'2',3=>'3',4=>'4','2'=>'232',"hello"=>'2131','11'=>'232');$arr2 = array(1=>'2',2=>'2',3=>'20',4=>'40',5=>'50');

function count_arr($key1,$key2){

if($key1==$key2){

return 0;

}else if($key1>$key2){

return 100;

}else if($key1<$key2){

return -100;

}

}

print_r(array_diff_uassoc($arr1,$arr2,'count_arr'));echo '<hr>';

/*

11.array_diff_key()

作用:

1.返回一个数组

2.该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值

3.与 array_diff() 不同的是,比较是根据键名而不是值来进行的。

//通俗点就是根据value来进行比较数组来取差集

*/

print_r(array_diff_ukey($arr1,$arr2,'count_arr'));echo '<hr>';

/*

12.array_fill(start,number,value)

作用:

1.array_fill() 函数用给定的值填充数组

2.返回的数组有 number 个元素,值为 value

3.返回的数组使用数字索引,从 start 位置开始并递增。如果 number 为 0 或小于 0,就会出错。

//通俗点就是在某个数组里从strat位置开始填充number个value值

*/

$array = array_fill(1,2,'hello');

print_r($array);echo '<hr>';

/*

13.array_filter(array,function)

作用:

1.array_filter() 函数用回调函数过滤数组中的元素

2.如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组

3.如果原数组是一个关联数组,键名保持不变。

//通俗点就是通过与给定的value进行比较来过滤数组中的值

*/

function func($value){

if($value=='hello'||$value=='world'){

return true;

}else{

return false;

}

}

$array = array('1'=>'hello','2'=>'world','3'=>'hi');

print_r(array_filter($array,'func'));echo '<hr>';

/*

14.array_flip(array)

作用:

1.array_flip() 函数返回一个反转后的数组

2.如果同一值出现了多次,则最后一个键名将作为它的值所有其他的键名都将丢失。

//通俗点就是把一个数组的key与value进行反转,没反转前相同的value将会被后面的覆盖

*/

$array = array('1'=>'hello','2'=>'world','3'=>'hi','4'=>'hello');

print_r(array_flip($array));echo '<hr>';

/*

15.array_intersect(array1,array2,array3....)

作用:

1.array_intersect() 函数返回两个或多个数组的交集数组。

2.结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。

//通俗点就是取出多个数组中的交集(比较的是key与value中的随意是或的关系)

*/

$array1 = array(1,2,3,4,5,6,7);

$array2 = array(1,3,5,7,9);

$array3 = array(1,3,4,6,7);

$array4 = array(1=>'11',2=>'22',3=>'33',4=>'44',5=>'55',6=>'66',7=>'77');

$array5 = array(1=>'11',66=>'66',77=>'77');

$array6 = array(1=>'11',222=>'22',333=>'33',777=>'77');

$array7 = array(1=>'11',2222=>'22',3333=>'33',7777=>'77');

print_r(array_intersect($array1,$array2,$array3));echo '<hr>';

print_r(array_intersect($array4,$array5,$array6));echo '<hr>';

/*

16.array_intersect_assoc(array1,array2,array3....)

作用:

1.array_intersect_assoc() 函数返回两个或多个数组的交集数组。

2.本函数除了比较键值,还比较键名。返回的数组中元素的键名保持不变。

//通俗点救赎key与value同时进行比较,都相同的才会当作交集

*/

print_r(array_intersect_assoc($array1,$array2,$array3));echo '<hr>';

/*

17.array_intersect_key(array1,array2,array3....)

作用:

1.array_intersect_key() 函数使用键名比较计算数组的交集。

2.array_intersect_key() 返回一个数组,该数组包含了所有出现在被比较的数组中并同时出现在所有其它参数数组中的键名的值。

//通俗点就是拿key作为比较元素进行比较,以取出各个数组的交集

*/

print_r(array_intersect_key($array4,$array5,$array6,$array7));echo '<hr>';

/*

18.array_intersect_uassoc(array1,array2,array3...,function)

作用:

1.array_intersect_uassoc() 函数使用用户自定义的回调函数计算数组的交集,用回调函数比较索引。

2.array_intersect_uassoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。返回的数组中键名保持不变。

//通俗点就是通过回调函数来使用key或者value来进行比较来取交集

*/

function func1($key1,$key2){

if($key1==$key2)

return 0;

else if($key1>$key2)

return 100;

else

return -100;

}

print_r(array_intersect_uassoc($array4,$array5,'func1'));echo '<hr>';

/*

19.array_intersect_ukey(array1,array2,array3...,function)

作用:

1.array_intersect_ukey() 函数用回调函数比较键名来计算数组的交集。

2.array_intersect_ukey() 返回一个数组,该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。

//通俗点就是通过回调函数使用key来进行比较以取交集

*/

$array5 = array(1=>'11',66=>'66',777=>'77');

$array6 = array(1=>'11',222=>'22',333=>'33',777=>'77');

function func2($key1,$key2){

if($key1==$key2)

return 0;

else if($key1>$key2)

return 100;

else

return -100;

}

print_r(array_intersect_ukey($array5,$array6,'func2'));echo '<br>';

/*

20:array_key_exists(key,array)

作用:

1.array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。

//通俗点就是判断某个key是否在指定的数组中

*/

$arr = array(1,2,3,4,5,6,7);

print_r(array_key_exists(1,$arr));echo '<hr>';

/*

21.array_keys(array,value)

作用:

1.array_keys() 函数返回包含数组中所有键名的一个新数组

2.如果提供了第二个参数,则只返回键值为该值的键名。

3.如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型。

//通俗点就是把某个数组中所有的value拿出来当作一个新的数组,不管数组是否是关联数组,键名都会重新从0-n

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

print_r(array_keys($arr));echo '<hr>';

/*

22.array_map(function,array1,array2,array3...)

作用:

1.array_map() 函数返回用户自定义函数作用后的数组

2.回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致

//通俗点就是通过回调函数来使用key与指定的值进行比较来替换该key对应的value

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

function func3($key){

if($key=='man')

return 'felay_man';

return $key;

}

print_r(array_map('func3',$arr));echo '<hr>';

/*

23.array_merge(array1,array2,array3...)

作用:

1.array_merge() 函数把两个或多个数组合并为一个数组。

2.如果键名重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)如果数组是数字索引的,则键名会以连续方式重新索引

//通俗点就是把多个数组合并成一个数组,如果有重复的key则会被后来的key对应的value覆盖掉

*/

$arr1 = array('name'=>'felayman','age'=>'22','sex'=>'男');

$arr2 = array('address'=>'北京','hobby'=>'Dota','sex'=>'女');

print_r(array_merge($arr1,$arr2));echo '<hr>';

/*

24.array_merge_recursive(array1,array2,array3...)

作用:

1.array_merge_recursive() 函数与 array_merge() 函数 一样,将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面。并返回作为结果的数组。

2.与 array_merge() 不同的是,当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组

//通俗点就是把数组进行合并,但是重复的键名的时候会将重复的key作为一个新的数组包起来,而不是覆盖掉

*/

print_r(array_merge_recursive($arr1,$arr2));echo '<hr>';

/*

25.array_multisort()

作用:

1.array_multisort(array1,sorting order,sorting type,array2,array3) 函数对多个数组或多维数组进行排序。

2.参数中的数组被当成一个表的列并以行来进行排序

//该函数有点复杂-----

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:

SORT_ASC - 默认,按升序排列。(A-Z)

SORT_DESC - 按降序排列。(Z-A)

随后可以指定排序的类型:

SORT_REGULAR - 默认。将每一项按常规顺序排列。

SORT_NUMERIC - 将每一项按数字顺序排列。

SORT_STRING - 将每一项按字母顺序排列。

//通俗点就是数组按照一定规则(数字,字符串)进行排序,键名重新从0-n编号

*/

$arr1 = array('123','34','32546','7','43','43');

$arr2 = array('32','4','32','4643','234','23');

print_r(array_multisort($arr1,$arr2));echo '<hr>';

print_r($arr1);print_r($arr2);echo '<hr>';

/*

26.array_pid(array,size,value)

作用:

1.array_pad() 函数向一个数组插入带有指定值的指定数量的元素。

2.size为数组大小

3.value 填充的值

//通俗点就是把一个数组用某个value填充到指定的数组大小size为止

*/

print_r(array_pad($arr1,8,'hello'));echo '<hr>';//

/*

27.array_pop(array)

作用:

1.array_pop() 函数删除数组中的最后一个元素

*/

$arr = array('he',1,2,3,4);

print_r(array_pop($arr));print_r($arr);echo '<hr>';

/*

28.array_product(array)

作用:

1.array_product() 函数计算并返回数组中所有值的乘积。

2.如果数组中含有字符,结果为0

*/

echo array_product($arr)."<hr>";

/*

29.array_push(array,value1,value2...)

作用:

1.array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度

2.该函数等于多次调用 $array[] = $value。

*/

$arr = array('hello','world');

array_push($arr,'i','love','you');

print_r($arr);echo '<hr>';

/*

30.array_ran(array,number)

作用:

1.array_rand() 函数从数组中随机选出一个或多个元素,并返回。

2.二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man','address'=>'北京');

print_r(array_rand($arr,2));echo '<hr>';

/*

31.array_reduce(array,function,initial)

作用:

1.array_reduce() 函数用回调函数迭代地将数组简化为单一的值

2.如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。

//通俗点就是把数组的value变为一个字符串而已,如果第三个参数为字符串,默认为0,如果为数字则会正常处理,一般用来处理归一化

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

function func4($key1,$key2){

return $key1.'======'.$key2;

}

print_r(array_reduce($arr,'func4','200'));echo '<hr>';

/*

32.array_reverse(array,preserve)

作用:

1.array_reverse() 函数将原数组中的元素顺序翻转,创建新的数组并返回

2.如果第二个参数指定为 true,则元素的键名保持不变,否则键名将丢失。

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

print_r(array_reverse($arr));echo '<hr>';

/*

33.array_search(value,array,strict)

作用:

1.array_search() 函数与 in_array() 一样,在数组中查找一个键值

2.如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

3.如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

//通俗点就是通过value在指定的数组里面查找对应的key

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

echo array_search('felayman',$arr).'<hr>';

/*

34.array_shift(array)

作用:

1.array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值。

2.如果键是数字的,所有元素都将获得新的键,从 0 开始,并以 1 递增

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

echo array_shift($arr).'<hr>';

/*

35.array_slice(array,offset,length,preserve)

1.ray_slice() 函数在数组中根据条件取出一段值,并返回。

2.array 必需。规定输入的数组。

3.offset 必需。数值。规定取出元素的开始位置

4.length 可选。数值。规定被返回数组的长度

5.preserve 可选。可能的值:true - 保留键false - 默认 - 重置键

//通俗点就是把一个数组从中取出部分作为一个新的额数组

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

print_r(array_slice($arr,1,count($arr),true));echo '<hr>';

/*

36.array_splice(array,offset,length,array)

作用:

1.array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。

2.如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。

3.最后生成的数组将会返回

4.array 必需。规定数组

5.offset 必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。

6.length 可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分

7.array 被移除的元素由此数组中的元素替代

//通俗点就是将一个新的数组里面的元素替换原数组中的部分内容

*/

$arr = array('name'=>'felayman','age'=>'22','sex'=>'man');

print_r(array_splice($arr,1,count($arr),array('hello','world')));echo '<hr>';print_r($arr);

/*

37.array_sum(array)

作用:计算数组中所有元素(b不包括字符串,会忽略字符串,官方解释是把字符串都换成0)的和

*/

$arr = array(1,2,3,3,5,'2','5','he');

echo array_sum($arr);echo'<hr>';

/*

38.array_udiff(array1,array2,array3...,function)

作用:

1.array_udiff() 函数返回一个数组,该数组包括了所有在被比较数组中,但是不在任何其它参数数组中的值,键名保留不变

//通俗点就是通过回调函数来使用key进行比较来取差集

*/

$arr1 = array('1'=>'111','2'=>'222','3'=>'333',4=>'444','5'=>'555','6'=>'666','7'=>'777');

$arr2 = array('1'=>'111','2'=>'222','4'=>'555','6'=>'555');

function func5($key1,$key2){

if($key1==$key2)

return 0;

return 1;

}

print_r(array_udiff($arr1,$arr2,'func5'));echo '<hr>';

/*

39.array_udiff_assoc(array1,array2,array3...,function)

作用:

1.array_udiff_assoc() 函数返回 array1 中存在但其它数组中都不存在的部分

//通俗点就是array_udiff(array1,array2,array3...,function)的加强版,key和value会同时进行比较

*/

$arr1 = array('1'=>'111','2'=>'22','3'=>'333',4=>'444','5'=>'555','6'=>'666','7'=>'777');

$arr2 = array('1'=>'111','2'=>'222','4'=>'555','6'=>'555');

function func6($key1,$key2){

if($key1==$key2)

return 0;

return 1;

}

print_r(array_udiff_assoc($arr1,$arr2,'func6'));echo '<hr>';

/*

40.array_udiff_uassoc(array1,array2,array3...,function1,function2)

作用:

1.array_udiff_uassoc() 函数返回 array1 数组中存在但其它数组中都不存在的部分。返回的数组中键名保持不变。

2.键名(索引)的检查也是由回调函数 function1 进行的。这和 array_udiff_assoc() 的行为不同,后者是用内部函数比较索引的

3.数组数据的比较是使用用户提供的回调函数 function2 进行的。在此方面和 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的

4.这两个函数都带有两个将进行比较的参数。如果第一个参数小于第二个参数,则函数返回一个负数,如果两个参数相等,则要返回 0,如果第一个参数大于第二个,则返回一个正数。

//个人感觉与array_udiff_assoc()函数没太大区别,唯一的区别是前者键名会被重新排序

*/

$arr1 = array('1'=>'111','2'=>'22','3'=>'333',4=>'444','5'=>'555','6'=>'666','7'=>'777');

$arr2 = array('1'=>'111','2'=>'222','4'=>'555','6'=>'555');

function func7($key1,$key2){

if($key1==$key2)

return 0;

return 1;

}

function func8($value1,$value2){

if($value1==$value2)

return 0;

return 1;

}

print_r(array_udiff_uassoc($arr1,$arr2,'func7','func8'));echo '<hr>';

/*

41.array_uintersect(array1,array2,array3...,function)

作用:通过回调函数来取交集

*/

function func9($v1,$v2)

{

if ($v1===$v2)

{

return 0;

}

if ($v1 > $v2) return 1;

{

return -1;

}

return 1;

}

$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");

$a2=array(1=>"Cat",2=>"Dog",3=>"Fish");

print_r(array_uintersect($a1,$a2,"func9"));echo '<hr>';

/*

42.array_uintersect_assoc(array1,array2,array3...,function)

作用:带索引检查计算数组的交集,用回调函数比较数据

*/

function func10($v1,$v2)

{

if ($v1===$v2)

{

return 0;

}

return 1;

}

$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");

$a2=array("a"=>"Cat","b"=>"Horse","c"=>"Dog");

print_r(array_uintersect_assoc($a1,$a2,"func10"));

/*

43.array_uintersect_uassoc()

作用:带索引检查计算数组的交集,用回调函数比较数据和索引。

*/

function myfunction_key($v1,$v2)

{

if ($v1===$v2)

{

return 0;

}

return 1;

}

function myfunction_value($v1,$v2)

{

if ($v1===$v2)

{

return 0;

}

return 1;

}

$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");

$a2=array("a"=>"Cat","b"=>"Dog","c"=>"Dog");

print_r(array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value"));

/*

44.array_unique(array)

作用:去除数组中重复的元素

*/

$arr =array(1,2,3,4,5,6,1,2,3,4,5,6);

print_r(array_unique($arr));echo '<hr>';

/*

45.array_unshift(array,value1,value2,value3...)

作用:数组开头插入一个或多个元素。

*/

$a=array("a"=>"Cat","b"=>"Dog");

array_unshift($a,"Horse");

print_r($a);echo '<hr>';

/*

46.array_values(array)

作用;返回数组中所有的元素的值

//通俗点就是把原数组中所有的value取出单独排序成一个数组

*/

$arr = array(1=>'hello',2=>'world',3=>'yeal.');

print_r($arr);echo '<hr>';

/*

47.arsort(array,sorttype)

作用:对数组进行逆向排序并保持索引关系

*/

$arr = array('1'=>'hello','2'=>'world','3'=>'yeal.');

arsort($arr,SORT_NUMERIC );print_r($arr);echo '<hr>';

/*

48.asort(array,sorttype)

作用:对数组进行排序并保持索引关系

*/

$arr = array('1'=>'hello','2'=>'world','3'=>'yeal.');

asort($arr,SORT_NUMERIC );print_r($arr);echo '<hr>';

/*

49.mpact(var1,var2...)

作用:创建一个由参数所带变量组成的数组

//通俗点就是把指定的几个变量当作数组的一部分值

*/

$name = 'felayman';

$age='22';

$sex='man';

$arr = compact('name','age','sex');

print_r($arr);echo '<hr>';

/*

50.count(array,mode)

作用:计算当前数组元素的个数

*/

$arr = array(1,2,3,4,6);

echo count($arr);echo '<hr>';

/*

51.current(array)

作用:回数组中的当前元素

*/

$arr = array('felay','22','man');

//输出当前值

echo current($arr).'<hr>';

//指向下一个值后

next($arr);

//此时指向的值会发生变化

echo current($arr).'<hr>';

//指向回来后

prev($arr);

//此时指向的值又回到原来位置

echo current($arr).'<hr>';

/*

52.each(array)

作用:each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。

1.上面已经说明了该函数的作用

*/

$arr = array(1,2,3,4);

//输出当前元素

echo current($arr);//输出1

echo '<hr>';

print_r(each($arr));//输出1

echo '<hr>';

echo current($arr);//输出2

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值