php array相关函数个人小结
1.array_chunk() 把一个数组分割为新的数组块。 其中每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。 
 例子  
 
 <?php
 
 $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");
 
 print_r(array_chunk($a,2));
 
 ?>
 
 输出:
 
 Array (
 
 [0] => Array ( [0] => Cat [1] => Dog )
 
 [1] => Array ( [0] => Horse [1] => Cow )
 
 )
 
 【
 
 这里非常像linux里的split工具。
 
 [root@xen187v tmp]$ cat tmp
 
 1
 
 2
 
 3
 
 4
 
 5
 
 6
 
 7
 
 [root@xen187v tmp]$ split -l 2 tmp
 
 [root@xen187v tmp]$ ls
 
 tmp  xaa  xab  xac  xad
 
 [root@xen187v tmp]$ cat xaa 
 
 1
 
 2
 
 [root@xen187v tmp]$ cat xab 
 
 3
 
 4
 
 [root@xen187v tmp]$ cat xac
 
 5
 
 6
 
 [root@xen187v tmp]$ cat xad
 
 7
 
 】
 
 
 
 
 
 2.
 
 array_merge()
 把一个或多个数组合并为一个数组。【这个是纵向合并】
 
 array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。【这个是横向合并】
 
 如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。
 
 例子
 
 <?php
 
 $a1=array("a","b","c","d");
 
 $a2=array("Cat","Dog","Horse","Cow");
 
 print_r(array_combine($a1,$a2));
 
 ?>
 
 【
 
 这个很像linux下的paste命令类似。
 
 paste单词意思是粘贴。该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反。
 
 
 
 
 
 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同
 
 [root@xen187v tmp]$ cat xaa
 
 1
 
 2
 
 [root@xen187v tmp]$ cat xab
 
 3
 
 4
 
 [root@xen187v tmp]$ paste xaa xab
 
 1       3
 
 2       4
 
 给xaa多加一行看看会怎么样
 
 [root@xen187v tmp]$ cat xaa
 
 1
 
 2
 
 3
 
 [root@xen187v tmp]$ paste xaa xab
 
 1       3
 
 2       4
 
 3
 
 给xab再加两行看看怎样样
 
 [root@xen187v tmp]$ cat xab
 
 i
 
 i
 
 3
 
 4
 
 [root@xen187v tmp]$ paste xaa xab
 
 1       i
 
 2       i
 
 3       3
 
         4
 
 [root@xen187v tmp]$ 
 
 
 
 
 
 】
 
 
 
 
 
 3.
 
 array_sum()
 计算数组中所有值的和。
 
 array_count_values() 函数用于统计数组中所有值出现的次数。
 
 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
 
 【很像uniq -c
 
 [root@xen187v tmp]$ cat xab
 
 i
 
 i
 
 3
 
 4
 
 [root@xen187v tmp]$ uniq -c xab
 
       2 i
 
       1 3
 
       1 4
 
 [root@xen187v tmp]$ uniq -c xab|awk '{print $2" "$1}'
 
 i 2
 
 3 1
 
 4 1
 
 [root@xen187v tmp]$ 
 
 】
 
 4.
 
 
 
 
 
 【感慨:要是这些数组函数名和linux命令名一致该多好,方便记忆】
 
 5.array_diff() 函数返回第一个数组,不在后继数组中的数据项数组
 
 6.array_flip()交换数组中的键和值. 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
 
 如果原数组中的值的数据类型不是字符串或整数,函数将报错。
 
 【这个值得记忆,处理数据时,容易遇到key->value要翻转的情况】
 
 7.array_intersect()
 计算数组的交集。
 
 【
 
 面试中容易出的题,用原生代码求两个数组的交集
 
 function intersectArray($arr1,$arr2)
 
 {
 
 
 $tmpArr = array();
 
 
 foreach($arr1 as $v1) $tmpArr[$v1] = 0;
 
 
 foreach($arr2 as $v2)
 
 
 {
 
 
 if(isset($tmpArr[$v2])
 
 
 {
 
 
 $tmpArr[$v2] = 1;
 
 
 }
 
 
 }
 
 
 //$tmpArr中值为1的就是交集
 
 
 $retArr = array();
 
 
 foreach($tmpArr as $key => $v)
 
 
 {
 
 
 if($v == 1) $retArr[] = $key;
 
 
 }
 
 
 return $retArr;
 
 }
 
 
 
 
 
 】
 
 8.array_keys()
 返回数组中所有的键名。 
 
 9.
 
 array_rand()
 从数组中随机选出一个或多个元素,并返回。
 
 shuffle() 函数把数组中的元素按随机顺序重新排列
 
 10.
 
 array_reverse()
 将原数组中的元素顺序翻转,创建新的数组并返回。
 
 11.
 
 array_search()
 在数组中搜索给定的值,如果成功则返回相应的键名。
 
 12 
 
 array_unique()
 删除数组中重复的值。
 
 13
 
 arsort()
 对数组进行逆向排序并保持索引关系。 
 
 asort()
 对数组进行排序并保持索引关系。
 
 krsort()
 对数组按照键名逆向排序。 
 
 ksort()
 对数组按照键名排序。 
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号