php 学习笔记 使用数组(三)

 1. 合并数组

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:

 
php 代码如下:

    array_merge($arr1,$arr2,$arr3...,$arrN);

这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。


如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。


A:数字索引:

  

output :


B:关联索引


output 



在使用 关联索引,两个或是多个数组中有重复的key值 ,后边将覆盖前边的值。


2. 追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:


php 代码格式如下:

    array_merge_recursive($arr1,$arr2,$arr3...,$arrN);



output 



对关联索引中 有重复的键值,会以一个数组形式返回,最后以数字索引格式返回。


3. 连接数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:

php 代码格式如下:

array_combine($arr1,$arr2,.....$arrN);

注意,两个输入数组必须大小相同,不能为空



下边是关联索引及数字索引数字,连接之后组成新的数组。



output:



如果两个数组的元素个数不匹配会怎样那 ?看图。。。



此时编辑器会提示:



这是由于 使用 array_combine 数组元素不匹配造成的。



4. 拆分数组 array_slice()
array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式:



array array_slice (array array, int offset[,int length]) 


offset 为正值时,拆分将从距数组开头的offset 位置开始则拆分从距数组末尾的offset 位置开始。

如果省略了可选参数length,则拆分将从offset 开始,一直到数组的最后一个元素。 在配置文件中可以忽略warning information



如果给出了length 且为正数,则会在距数组开头的offset+length 位置结束。相反,如果给出了length且为负数,则在距数组开头的count(input_array)-|length|位置结束


举例子:





另一种情况





5. 接合数组 array_splice()

array_splice()函数会删除数组中从offset开始到offset+length 结束的所有元素,并以数组的形式返回所删除的元素。其形式为:


 array array_splice ( array array , int offset[,length[,array replacement]])




观察下  ,会发现一个问题 ,打印

$arr1 的时候 显示已删除的数组元素,

$arr2 则是 分割后得到的元素。


示例:




 


6. 数组的交集 array_intersect()

array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

  1. array array_intersect(array array1,array array2[,arrayN…])  



显示数组中交集元素。


7. 关联数组的交集 array_intersect_assoc()
Php代码   收藏代码
  1. <?php  
  2. $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");  
  3. $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");  
  4. $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");  
  5. $intersection = array_intersect_assoc($fruit1$fruit2$fruit3);  
  6. print_r($intersection);  
  7.   
  8. // output  
  9. // Array ( [red] => Apple )  
  10. ?>  

8. 数组的差集 array_diff()


函数array_diff()返回出现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。

  1. <?php  
  2. $fruit1 = array("Apple","Banana","Orange");  
  3. $fruit2 = array("Pear","Apple","Grape");  
  4. $fruit3 = array("Watermelon","Orange","Apple");  
  5. $intersection = array_diff($fruit1$fruit2$fruit3);  
  6. print_r($intersection);  
  7.   
  8. // output  
  9. // Array ( [1] => Banana )  
  10. ?>  

9. 关联数组的差集 array_diff_assoc()

函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中出现而不再其他输入数组中出现的键/值对才会返回到结果数组中。其形式如下:

下面的例子只返回了[yellow] => Banana,因为这个特殊的键/值对出现在$fruit1中,而在$fruit2和$fruit3中都不存在。

 
  1. <?php  
  2. $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");  
  3. $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");  
  4. $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");  
  5. $intersection = array_diff_assoc($fruit1$fruit2$fruit3);  
  6. print_r($intersection);  
  7.   
  8. // output  
  9. // Array ( [yellow] => Banana )  
  10. ?>  


10. 获取当前数组键 key()
key()函数返回input_array中当前指针所在位置的键。其形式如下:


  1. $fruits = array("apple"=>"red""banana"=>"yellow");  
  2. while ($key = key($fruits)) {  
  3.     printf("%s <br />"$key);  
  4.     next($fruits);  
  5. }  
  6.   
  7. // apple   
  8. // banana  


11. 获取当前数组值 current()

current()函数返回数组中当前指针所在位置的数组值。其形式如下:

 
  1. mixed current(array array)  

  1. $fruits = array("apple"=>"red""banana"=>"yellow");  
  2. while ($fruit = current($fruits)) {  
  3.     printf("%s <br />"$fruit);  
  4.     next($fruits);  
  5. }  
  6.   
  7. // red   
  8. // yellow   


12. 获取当前数组键和值 each()

each()函数返回input_array的当前键/值对,并将指针推进一个位置。其形式如下:


  1. array each(array array)  
  1. $fruits = array("apple""banana""orange""pear");  
  2. print_r ( each($fruits) );  
  3.   
  4. // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 )  


13. in_array()函数

in_array()函数在一个数组汇总搜索一个特定值,如果找到这个值返回true,否则返回false。其形式如下:

  1. boolean in_array(mixed needle,array haystack[,boolean strict]);  
  1. $fruit = "apple";   
  2. $fruits = array("apple","banana","orange","pear");   
  3. if( in_array($fruit,$fruits) )    
  4.     echo "$fruit 已经在数组中";  

第三个参数可选,它强制in_array()在搜索时考虑类型。


14. array_key_exists()函数

如果在一个数组中找到一个指定的键,函数array_key_exists()返回true,否则返回false。


15. array_search()函数

array_search()函数在一个数组中搜索一个指定的值,如果找到则返回相应的键,否则返回false。


16. array_keys()函数

array_keys()函数返回一个数组,其中包含所搜索数组中找到的所有键。


17. array_values()函数

array_values()函数返回一个数组中的所有值,并自动为返回的数组提供数值索引。


18. 在数组头添加元素

array_unshift()函数在数组头添加元素。所有己有的数值键都会相应地修改,以反映其在数组中的新位置,但是关联键不受影响。

  1. $fruits = array("apple","banana");  
  2. array_unshift($fruits,"orange","pear")  
  3. // $fruits = array("orange","pear","apple","banana")

19. 在数组尾添加元素

array_push()函数的返回值是int型,是压入数据后数组中元素的个数,可以为此函数传递多个变量作为参数,同时向数组压入多个变量。

  1. $fruits = array("apple","banana");  
  2. array_push($fruits,"orange","pear")  
  3. //$fruits = array("apple","banana","orange","pear")  

20. 从数组头删除值

array_shift()函数删除并返回数组中找到的元素。其结果是,如果使用的是数值健,则所有相应的值都会下移,而使用关联键的数组不受影响。



  1. $fruits = array("apple","banana","orange","pear");  
  2. $fruit = array_shift($fruits);  
  3. // $fruits = array("banana","orange","pear")  
  4. // $fruit = "apple";  


21. 从数组尾删除元素

array_pop()函数删除并返回数组的最后一个元素。

  1. $fruits = array("apple","banana","orange","pear");  
  2. $fruit = array_pop($fruits);  
  3. //$fruits = array("apple","banana","orange");  
  4. //$fruit = "pear";  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值