zoukankan      html  css  js  c++  java
  • 【微信开发】玩转PHP 数组用法!

    • 数组的起始下标可以不从0开始,例子为从2开始。

      $data = array(2=>'A','B','C');     运行结果:$data = array(2=>'A',3=>'B',4=>'C');


    • unset()   删除整个数组     删除单个数组元素 

            初始数组:$data = array('name'=> '洛初','age'=> 24,'sex'=> '女');

            unset($data);                    运行结果:NULL

            unset($data['name']);       运行结果:$data = array('age'=>24,'sex'=>'女');


    • list()    把数组中的值赋给一些变量 

            $data = array('洛初','女','24');

            list($a,$b,$c) = $data;             运行结果:$a='洛初'; $b='女'; $c='24';

            注释:该函数只用于数字索引的数组,且假定数字索引从 0 开始。      


    • range()    自动生成一个包含指定范围单元的数据

            $data = range(0,5);        运行结果:$data = array(0,1,2,3,4,5);


    • array_count_values(array) 用于统计数组中所有值出现的次数。   统计数组中相同元素的个数

            $data = array('name'=> '洛初','age'=> 24,'sex'=> '女','nickname'=>'洛初');

            array_count_values($data);            运行结果:array('洛初'=>2,'24'=>1,'女'=>1);


    • array_change_key_case(array,case)   把数组中所有键更改为小写或大写。     将数组中所有的键转变大小写 

            

            array必需。规定要使用的数组。

            case        可选。可能的值:CASE_LOWER - 默认值。将数组的键转换为小写字母。CASE_UPPER - 将数组的键转换为大写字母。

            $data = array('Name'=> '洛初','Age'=> 24,'Sex'=> '女');

            array_change_key_case($data,CASE_UPPER);    

            运行结果:$data = array('NAME'=> '洛初','AGE'=> 24,'SEX'=> '女');

             array_change_key_case($data,CASE_LOWER);  

            运行结果:$data = array('name'=> '洛初','age'=> 24,'sex'=> '女');


    • array_chunk(array,size,preserve_key)    把一个数组分割为新的数组块。    把数组分割为新的数组块

            array:必需,数组;   

            size:必需,规定每个新数组包含多少个元素   

            preserve_key:可选,true - 保留原始数组中的键名。false - 默认。每个结果数组使用从零开始的新数组索引

            $data = array('Name'=> '洛初','Age'=> 24,'Sex'=> '女');

            array_chunk($data,2);    

            运行结果:$data = array(0=>array(0=>'洛初',1=>24),1=>array(0=>'女'));


    • array_column(array,column_key,index_key)    返回输入数组中某个单一列的值

    •   

    • array:必需,数组;   

            column_key:必需,需要返回值的列。该参数也可以是NULL,此时将返回整个数组 

            index_key:可选,用作返回数组的索引或键的列。

            $data = array(    array('id'=>1,'name'=>'洛初'),    array('id'=>2,'name'=>'洛秋'),    array('id'=>2,'name'=>'洛末'),);

            array_column($data,'name');        运行结果:$data = array(0=>'洛初',1=>'洛秋',2=>'洛末');


    • array_combine(keys,values)   通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值

            keys:必需,键名数组;        values:必需,键值数组;

            $fname=array("Bill","Steve","Mark");    $age=array("60","56","31");

            array_combine($fname,$age);        运行结果:array('Bill'=>60,'Steve'=>56,'Mark'=>31);

            注释:键名数组和键值数组的元素个数必须相同!如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。 


    • 填充数组

            array_fill(index,number,value)  用给定的键值填充数组。        用键值填充数组

            index:必需,被返回数组的第一个索引;

            number:必需,规定要插入的元素数;

            value:必需,规定供填充数组所使用的值 ;

            array_fill(3,4,blue);        运行结果:array("3"=>"blue","4"=>"blue","5"=>"blue","6"=>"blue");

            array_fill_keys(keys,value)  用指定键名的给定键值填充数组。   使用指定的键和值填充数组

            keys:必需,使用该数组的值作为键。非法值将被转换为字符串;

            value:必需,填充数组所使用的值;

            $keys = array("a","b","c","d");    array_fill_keys($keys,"blue);     运行结果:array("a"=>"blue","b"=>"blue","c"=>"blue","d"=>"blue");


    • array_filter(array,callbackfunction)  用回调函数过滤数组中的元素

            array必需。规定要过滤的数组。

            callbackfunction必需。规定要使用的回调函数。

            该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

            function test_odd($var){    return($var & 1);    }

            $a1=array("a","b",2,3,4);        array_filter($a1,"test_odd");        运行结果:array("3"=>"3");


    • array_flip(array)    交换数组中的键和值。    反转数组中所有的键以及它们关联的值       

            $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");    array_flip($a1);    运行结果:array("red"=>"a","green"=>"b","blue"=>"c","yellow"=>"d");


    • array_key_exists(key,array)   检查指定的键名是否存在于数组中。   检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false       

            key必需。规定键名。        array必需。规定数组。


    • array_keys(array,value,strict)   返回数组中所有的键名。 返回包含数组中所有键名的一个新数组       

            array必需。规定数组。

            value可选。您可以指定键值,然后只有该键值对应的键名会被返回。

            strict         可选。与 value 参数一起使用。可能的值:true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。    false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。

            $a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");

            array_keys($a);        运行结果:array("0"=>"Volvo","1"=>"BMW","2"=>"Toyota");

            array_keys($a,"Highlander");         运行结果:array("0"=>"Toyota");

            $a=array(10,20,30,"10");

            array_keys($a,"10",false);     运行结果:array("0"=>0,"1"=>3);

            array_keys($a,"10",true);     运行结果:array("0"=>3);


    • array_map(myfunction,array1,array2,array3...)   把数组中的每个值发送到用户自定义函数,返回新的值。 将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。       

            myfunction必需。用户自定义函数的名称,或者是 null。

            array1必需。规定数组。          array2可选。规定数组。        array3可选。规定数组。

            将函数名赋值为 null 时:

            $a1=array("Dog","Cat");$a2=array("Puppy","Kitten");array_map(null,$a1,$a2);

            运行结果:Array ( [0] => Array ( [0] => Dog [1] => Puppy ) [1] => Array ( [0] => Cat [1] => Kitten ) );


    • array_multisort(array1,sorting order,sorting type,array2,array3...)      对多个数组或多维数组进行排序。       返回排序数组,您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。       

            sorting order    可选。规定排列顺序。可能的值:    SORT_ASC - 默认。按升序排列 (A-Z)。    SORT_DESC - 按降序排列 (Z-A)。

            sorting type    可选。规定排序类型。可能的值:

                    SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。

                    SORT_NUMERIC - 把每一项作为数字来处理。

                    SORT_STRING - 把每一项作为字符串来处理。

                    SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

                    SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。

                    SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

            注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。

        您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。

                      参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。


            array_values(array)    返回数组中所有的值。

            count(array,mode)     返回数组中元素的数目。

            sizeof(array,mode)     count() 的别名。

            compact(var1,var2...)    创建包含变量名和它们的值的数组。

            extract(array,extract_rules,prefix)    从数组中将变量导入到当前的符号表。

            in_array(search,array,type)    检查数组中是否存在指定的值。

            key(array)    从关联数组中取得键名。

            range(low,high,step)     创建包含指定范围单元的数组。

            shuffle(array)    将数组打乱。    该函数为数组中的元素分配新的键名。已有键名将被删除

            array_pad(array,size,value)     用值将数组填补到指定长度。        如果您将 size 参数设置为负数,该函数会在原始数组之前插入新的元素。

            array_pop(array)     删除数组的最后一个元素(出栈)。

            array_push(array,value1,value2...)将一个或多个元素插入数组的末尾(入栈)。

            array_shift(array)     删除数组中首个元素,并返回被删除元素的值。    如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增

            array_unshift(array,value1,value2,value3...)    在数组开头插入一个或多个元素。    该函数会返回数组中元素的个数。

            array_product(array)        计算数组中所有值的乘积。

            array_sum(array)    返回数组中值的和。

            array_rand(array,number)        返回数组中一个或多个随机的键名。

            array_reduce(array,myfunction,initial)    通过使用用户自定义函数,以字符串返回数组。

            array_replace(array1,array2,array3...)    使用后面数组的值替换第一个数组的值。

            array_replace_recursive(array1,array2,array3...)     递归地使用后面数组的值替换第一个数组的值。

            array_merge(array1,array2,array3...)    把一个或多个数组合并为一个数组。

            array_merge_recursive(array1,array2,array3...)    递归地合并一个或多个数组。

            array_reverse(array,preserve)        以相反的顺序返回数组。对于整数键名,如果第二个参数指定为 true,则元素的键名保持不变,否则键名将丢失。

            array_search(value,array,strict)        搜索数组中给定的值并返回键名。 

            array_slice(array,start,length,preserve)    返回数组中被选定的部分。

            array_splice(array,start,length,array)    删除并替换数组中指定的元素。

            array_unique(array)    删除数组中的重复值。    当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。

            array_walk(array,myfunction,userdata...)    对数组中的每个成员应用用户函数。

            array_walk_recursive(array,myfunction,parameter...)    对数组中的每个成员递归地应用用户函数。


    • 排序

           arsort(array,sortingtype)    对关联数组按照键值进行降序排序。

           asort(array,sortingtype)    对关联数组按照键值进行升序排序。

           krsort(array,sortingtype)    对数组按照键名逆向排序。

           ksort(array,sortingtype)    对数组按照键名排序。

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

           natsort(array)    用“自然排序”算法对数组排序。

           rsort(array,sortingtype)    对数组逆向排序。

           sort(array,sortingtype)    对数组排序。   

           uasort(array,myfunction)    使用用户自定义的比较函数对数组中的键值进行排序。

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

           usort(array,myfunction)    使用用户自定义的比较函数对数组进行排序。


    • 数组指针的移动

            current(array)    返回数组中的当前元素。

            each(array)    返回数组中当前的键/值对。

            end(array)    将数组的内部指针指向最后一个元素。

            prev(array)    将数组的内部指针倒回一位。

            next(array)    将数组中的内部指针向前移动一位。

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

            pos(array)    current() 的别名。

        注释: 如果数组包含空的单元,或者单元的值是 0 则该函数碰到这些单元也返回 FALSE。

                 要正确遍历可能含有空单元或者单元值为 0 的数组,请参见 each() 函数。

        注释:each() 函数返回当前元素的键名和键值,并将内部指针向前移动。

                该元素的键名和键值会被返回带有四个元素的数组中。两个元素(1 和 Value)包含键值,两个元素(0 和 Key)包含键名。

                如果内部指针越过了数组范围,本函数将返回 FALSE。  


    • 比较数组,返回差集

      array_diff(array1,array2,array3...)     比较数组,返回差集(只比较键值)。

      array_diff_assoc(array1,array2,array3...)  比较数组,返回差集(比较键名和键值)。

      array_diff_key(array1,array2,array3...)     比较数组,返回差集(只比较键名)。

      array_diff_uassoc(array1,array2,array3...,myfunction)     比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。

            array_udiff(array1,array2,array3...,myfunction)        比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。

            array_diff_ukey(array1,array2,array3…,myfunction)    比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。

            array_udiff_assoc(array1,array2,array3...,myfunction)    比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。

            array_udiff_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)        比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。

      • 比较数组,返回交集

        array_intersect(array1,array2,array3...)     比较数组,返回交集(只比较键值)。

        array_intersect_assoc(array1,array2,array3...)      比较数组,返回交集(比较键名和键值)。

        array_intersect_key(array1,array2,array3...)      比较数组,返回交集(只比较键名)。

        array_intersect_uassoc(array1,array2,array3...,myfunction)      比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。

                    array_intersect_ukey(array1,array2,array3...,myfunction)  比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。

                    array_uintersect(array1,array2,array3...,myfunction)    比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。

                    array_uintersect_assoc(array1,array2,array3...,myfunction)比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。

                    array_uintersect_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。

  • 相关阅读:
    如何输出高精度时间差
    GetThreadTimes获取其它线程cpu时间
    12-Python基础之类与面向对象
    10-Python函数之递归
    09-Python基础之内置函数与匿名函数
    08-Python基础之迭代器与生成器
    07-Python基础之装饰器
    06-Python基础之函数进阶(嵌套,作用域)
    05-Python基础之函数基础
    04-Python基础之文件操作基础
  • 原文地址:https://www.cnblogs.com/jucheng/p/6398335.html
Copyright © 2011-2022 走看看