zoukankan      html  css  js  c++  java
  • 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() 对数组按照键名排序。

  • 相关阅读:
    大数据学习——hive数据类型
    大数据学习——关于hive中的各种join
    大数据学习——hive的sql练习
    大数据学习——hive显示命令
    大数据学习——hive数仓DML和DDL操作
    大数据学习——hive基本操作
    大数据学习——hive使用
    大数据学习——hive安装部署
    大数据学习——日志分析
    大数据学习——mapreduce运营商日志增强
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3220106.html
Copyright © 2011-2022 走看看