zoukankan      html  css  js  c++  java
  • php自定义函数及内部函数----数组处理函数

    一、增加元素

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

      注释:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。

      注释:如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组。

    $a=array("a"=>"xiao","b"=>"lin");
    array_push($a,"hello","world");
    print_r($a);
    //Array ( [a] => xiao [b] => lin [0] => hello [1] => world )

    或者这样做:

    $a["a"] = "xiao";
    $a["b"] = "lin";
    $a[] = "hello";
    $a[] = "world";
    print_r($a);
    //Array ( [a] => xiao [b] => lin [0] => hello [1] => world )

    (2)array_unshift() : 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。该函数会返回数组中元素的个数。

    $a=array(0=>"xiao",1=>"lin");
    array_unshift($a,"zi");
    print_r($a);//Array ( [0] => zi [1] => xiao [2] => lin )

    (3)array_pad() : 函数将指定数量的带有指定值的元素插入到数组中,知道数组的长度达到指定大小为止。

      array_pad(array,size,value)

      注释:如果 size 参数小于原始数组的长度,该函数不会删除任何元素。

      注释:如果 size 参数设置为负数,该函数会在原始数组之前插入新的元素

    $a=array("xiao","lin");
    print_r(array_pad($a,5,"zi"));
    // Array ( [0] => xiao [1] => lin [2] => zi [3] => zi [4] => zi )
    $a=array("xiao","lin");
    print_r(array_pad($a,-5,"zi"));
    // Array ( [0] => zi [1] => zi [2] => zi [3] => xiao [4] => lin )

    二、删除元素

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

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

      注释:如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增。

    $a=array(0=>"xiao",1=>"lin",2=>"zi");
    echo array_shift($a);// xiao
    print_r ($a);//Array ( [0] => lin [1] => zi )

    三、定位元素

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

    (2)array_values() :函数返回一个包含给定数组中所有键值的数组,但不保留键名,被返回的数组将使用数值键,从 0 开始并以 1 递增。

    $a=array("山东"=>"济南","陕西"=>"西安","河南"=>"郑州");
    print_r(array_keys($a)); // Array ( [0] => 山东 [1] => 陕西 [2] => 河南 )
    print_r(array_values($a));// Array ( [0] => 济南 [1] => 西安 [2] => 郑州 )

    (3)in_array() :函数搜索数组中是否存在指定的值。

      in_array(search,array,type)

      注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。

      如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

      如果没有在数组中找到参数,函数返回 false。

    (4)array_search() :函数在数组中搜索某个键值,并返回对应的键名。

    四、提取元素

    (1)array_diff():函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。在返回的数组中,键名保持不变。

    $a1=array("a"=>"xiao","b"=>"lin","c"=>"zi","d"=>"happy");
    $a2=array("e"=>"xiao","f"=>"lin","g"=>"happy");
    $a3=array("a"=>"xiao","b"=>"lin","h"=>"haha");
    
    $result=array_diff($a1,$a2,$a3);
    print_r($result);

    (2)array_intersect() :函数用于比较两个(或更多个)数组的键值,并返回交集。

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

      该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

      注意:只有第一个数组是被比较的数组。返回的也是它的键和值。

    $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
    $a2=array("e"=>"red","f"=>"black","g"=>"purple");
    $a3=array("a"=>"red","b"=>"black","h"=>"yellow");
    
    $result=array_intersect($a1,$a2,$a3);
    print_r($result); // Array ( [a] => red )

    五、数组排序

    (1)sort() :函数对索引数组进行升序排序。

      注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

    (2)rsort(): 函数对数值数组进行降序排序。

    六、其他操作

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

      array_rand(array,number)

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

    $a=array("a"=>"xiao","b"=>"lin","c"=>"zi");
    print_r(array_rand($a,1)); // b
    print_r(array_rand($a,2)); // Array ( [0] => a [1] => c )

    (2)array_merge():函数把一个或多个数组合并为一个数组。

      注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

      注释:如果仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

    $a1=array("a"=>"xiao","b"=>"lin");
    $a2=array("c"=>"zi","b"=>"happy");
    print_r(array_merge($a1,$a2)); // Array ( [a] => xiao [b] => happy [c] => zi )

    (3)array_merge_recursive() :函数把一个或多个数组合并为一个数组。

      该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

    $a1=array("a"=>"xiao","b"=>"lin");
    $a2=array("c"=>"zi","b"=>"happy");
    print_r(array_merge_recursive($a1,$a2)); 
    // Array ( [a] => xiao [b] => Array ( [0] => lin [1] => happy ) [c] => zi )
  • 相关阅读:
    android-自定义View
    java
    记录-常用的开发技巧
    便签:
    zTree 树形控件 ajax动态加载数据
    jquery ajax 传数据到后台乱码的处理方法
    spring + quartz 定时
    SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
    复制新项目 ,tomcat部署时名字还是旧项目名
    jsp 通用获取所有表单值传后台
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10078199.html
Copyright © 2011-2022 走看看