zoukankan      html  css  js  c++  java
  • PHP常见数组方法和函数

    current();当前游标指向的数组单元值

    next();下一个数组单元值

    end()最后一个

    reset()复位

    prev()把数组指针往前一位

    写法:$arr=array('a','b','c','d');

    next($arr);

    echo current($arr);

    isset当值是null时false

    isset判断一个变量是否存在

    array_key_exists('角标,数组名') 函数检查某个数组中是否存在指定的键名

    in_array('值',数组名);判断值是否存在

    1、array_change_key_case():把数组中所有键更改为小写或大写。

    array_change_key_case(array,case);
    参数描述
    array 必需。规定要使用的数组。
    case

    可选。可能的值:

    • CASE_LOWER - 默认值。将数组的键转换为小写字母。
    • CASE_UPPER - 将数组的键转换为大写字母。

    2、array_chunk():把一个数组分割为新的数组块。

    array_chunk(array,size,preserve_key);
    参数描述
    array 必需。规定要使用的数组。
    size 必需。整数值,规定每个新数组包含多少个元素。
    preserve_key

    可选。可能的值:

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

    3、array_column(): 返回输入数组中某个单一列的值。

    array_column(array,column_key,index_key);
    参数描述
    array 必需。规定要使用的多维数组(记录集)。
    column_key

    必需。需要返回值的列。

    可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。

    该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。

    index_key 可选。用作返回数组的索引/键的列。

    4、array_combine():通过合并两个数组(键名、键值合并成一个)来创建一个新数组。 (注释:两个参数必须有相同数目的元素。一组为键值,另一组为键名。)

    array_combine(keys,values);
    参数描述
    keys 必需。键名数组。
    values 必需。键值数组。

    5、array_count_values(): 统计数组中所有值出现的次数。

    array_count_values(array)
    参数描述
    array 必需。规定需要对值进行计数的数组。
    返回值: 返回关联数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

    6、array_diff():比较数组,返回差集(只比较键值)。

    array_diff(array1,array2,array3...);
    
    参数描述
    array1 必需。与其他数组进行比较的第一个数组。
    array2 必需。与第一个数组进行比较的数组。
    array3,... 可选。与第一个数组进行比较的其他数组。
    返回值: 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或 array3 等等)中的键值。

    array_diff_assoc():比较数组,返回差集(比较键名和键值)。

    array_diff_key():比较数组,返回差集(只比较键名)。

    array_diff_uassoc():比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)

    array_diff_uassoc(array1,array2,array3...,myfunction);
    参数描述
    array1 必需。与其他数组进行比较的第一个数组。
    array2 必需。与第一个数组进行比较的数组。
    array3,... 可选。与第一个数组进行比较的其他数组。
    myfunction 必需。定义可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。

    例:

    <?php
    function myfunction($a,$b)
    {
    if ($a===$b)
      {
      return 0;
      }
      return ($a>$b)?1:-1;
    }
    
    $a1=array("a"=>"red","b"=>"green","c"=>"blue");
    $a2=array("d"=>"red","b"=>"green","e"=>"blue");
    
    $result=array_diff_uassoc($a1,$a2,"myfunction");
    print_r($result);
    ?>

    7、array_filter():用回调函数过滤数组中的元素。

    array_filter(array,callbackfunction);
    参数描述
    array 必需。规定要过滤的数组。
    callbackfunction 必需。规定要使用的回调函数。
    返回值: 返回过滤的数组。
    <?php
    function test_odd($var)
    {
    return($var & 1);
    }
    
    $a1=array("a","b",2,3,4);
    print_r(array_filter($a1,"test_odd"));
    ?>

    8、array_flip():交换数组中的键和值。

    array_flip(array);
    返回值: 如果反转成功,则返回反转后的数组。如果失败,则返回 NULL。

    9、array_intersect():比较数组,返回交集(只比较键值)。

    array_intersect(array1,array2,array3...);
    参数描述
    array1 必需。与其他数组进行比较的第一个数组。
    array2 必需。与第一个数组进行比较的数组。
    array3,... 可选。与第一个数组进行比较的其他数组。
    返回值: 返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

    array_intersect_assoc():比较数组,返回交集(比较键名和键值)。

    array_intersect_key():比较数组,返回交集(只比较键名)。

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

    array_intersect_uassoc(array1,array2,array3...,myfunction)
    参数描述
    array1 必需。与其他数组进行比较的第一个数组。
    array2 必需。与第一个数组进行比较的数组。
    array3,... 可选。与第一个数组进行比较的其他数组。
    myfunction 必需。定义可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。
    返回值: 返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2或 array3 等等)中的键名和键值。

    注意,与 array_intersect() 不同的是除了比较键值,还要比较键名。

    此比较是通过用户提供的回调函数来进行的。该函数带有两个参数,即两个要进行对比的键名。如果第一个参数小于第二个参数,则函数要返回一个负数,如果两个参数相等,则要返回 0,如果第一个参数大于第二个参数,则返回一个正数。

    10、array_key_exists():检查指定的键名是否存在于数组中。

    array_key_exists(key,array)
    参数描述
    key 必需。规定键名。
    array 必需。规定数组。
    返回值: 如果键名存在则返回 TRUE,如果键名不存在则返回 FALSE。

    11、array_keys():返回数组中所有的键名。

    array_keys(array,value,strict)
    参数描述
    array 必需。规定数组。
    value 可选。您可以指定键值,然后只有该键值对应的键名会被返回。
    strict

    可选。与 value 参数一起使用。可能的值:

    • true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。
    • false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。
    返回值: 返回包含数组中所有键名的一个新数组。


    12、array_map():把数组中的每个值发送到用户自定义函数,返回新的值。

    array_map(myfunction,array1,array2,array3...)
    参数描述
    myfunction 必需。用户自定义函数的名称,或者是 null。
    array1 必需。规定数组。
    array2 可选。规定数组。
    array3 可选。规定数组。
    返回值: 返回包含 array1 的值的数组,在向每个值应用自定义函数后。
    例:一个数组
    <?php
    function myfunction($v)
    {
    if ($v==="Dog")
      {
      return "Fido";
      }
    return $v;
    }
    
    $a=array("Horse","Dog","Cat");
    print_r(array_map("myfunction",$a));
    ?>
    例:两个数组
    
    <?php
    function myfunction($v1,$v2)
    {
    if ($v1===$v2)
      {
      return "same";
      }
    return "different";
    }
    
    $a1=array("Horse","Dog","Cat");
    $a2=array("Cow","Dog","Rat");
    print_r(array_map("myfunction",$a1,$a2));
    ?>


    13、array_merge():把一个或多个数组合并为一个数组。(非键名、键值合并)

    array_merge(array1,array2,array3...)
    参数描述
    array1 必需。规定数组。
    array2 可选。规定数组。
    array3 可选。规定数组。
    返回值: 返回合并的数组。

    14、array_multisort():对多个数组或多维数组进行排序。

    array_multisort(array1,sorting order,sorting type,array2,array3...)
    参数描述
    array1 必需。规定数组。
    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 对字符串进行排序,不区分大小写。
    array2 可选。规定数组。
    array3 可选。规定数组。
    返回值: 如果成功则返回 TRUE,如果失败则返回 FALSE。

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

    返回值: 返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。

    16、array_product():计算数组中所有值的乘积。

    17、array_push():将一个或多个元素插入数组的末尾(入栈)。

    返回值: 返回新数组的元素个数。

    18、array_rand():返回数组中一个或多个随机的键。

    array_rand(array,number)
    参数描述
    array 必需。规定数组。
    number 可选。规定返回多少随机键名。
    返回值: 返回数组中的一个随机键名,或者如果您规定函数不只一个返回键名,则返回包含随机键名的数组。
    <?php
    $a=array("red","green","blue","yellow","brown");
    $random_keys=array_rand($a,3);
    echo $a[$random_keys[0]]."<br>";
    echo $a[$random_keys[1]]."<br>";
    echo $a[$random_keys[2]];
    ?>

    19、array_reduce():通过使用用户自定义函数,以字符串返回数组。

    array_reduce(array,myfunction,initial)
    参数描述
    array 必需。规定数组。
    myfunction 必需。规定函数的名称。
    initial 可选。规定发送到函数的初始值。
    返回值: 返回结果值。

    例:

    <?php
    function myfunction($v1,$v2)
    {
    return $v1 . "-" . $v2;
    }
    $a=array("Dog","Cat","Horse");
    print_r(array_reduce($a,"myfunction"));
    ?>

    结果为:-Dog-Cat-Horse

    <?php
    function myfunction($v1,$v2)
    {
    return $v1+$v2;
    }
    $a=array(10,15,20);
    print_r(array_reduce($a,"myfunction",5));
    ?>

    结果为:50

    18、array_replace():使用后面数组的值替换第一个数组的值。

    array_replace(array1,array2,array3...)
    参数描述
    array1 必需。规定数组。
    array2 可选。指定要替换 array1 的值的数组。
    array3,... 可选。指定多个要替换 array1 和 array2, ... 的值的数组。后面数组的值将覆盖之前数组的值。
    返回值: 返回被替换的数组,如果发生错误则返回 NULL。

    提示:您可以向函数传递一个数组,或者多个数组。

    如果一个键存在于第一个数组 array1 同时也存在于第二个数组 array2,第一个数组 array1 中的值将被第二个数组 array2 中的值替换。如果一个键仅存在于第一个数组 array1,它将保持不变。

    如果一个键存在于第二个数组 array2,但是不存在于第一个数组 array1,则会在第一个数组 array1 中创建这个元素。(详见下面的实例 2)

    如果传递了多个替换数组,它们将被按顺序依次处理,后面数组的值将覆盖之前数组的值。

    19、array_reverse():以相反的顺序返回数组。

    20、array_search():搜索数组中给定的值并返回键名。

    array_search(value,array,strict)
    参数描述
    value 必需。规定需要搜素的键值。
    array 必需。规定被搜索的数组。
    strict

    可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:

    • true
    • false - 默认

    如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。

    返回值:

    如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。

    如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。

    21、array_shift():删除数组中首个元素,并返回被删除元素的值。

    22、array_sum():返回数组中值的和。

    23、array_splice():删除并替换数组中指定的元素。

    array_splice(array,start,length,array)
    参数描述
    array 必需。规定数组。
    start

    必需。数值。规定删除元素的开始位置。

    • 0 = 第一个元素。
    • 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。
    • 如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。
    • -2 意味着从数组的倒数第二个元素开始。
    length

    可选。数值。规定被移除的元素个数,也是被返回数组的长度。

    • 如果该值设置为正数,则移除该数量的元素。
    • 如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。
    • 如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。
    array

    可选。规定带有要插入原始数组中元素的数组。

    如果只有一个元素,则可以设置为字符串,不需要设置为数组。

    返回值: 返回由被提取元素组成的数组。

    24、array_slice():返回数组中被选定的部分。

    array_slice(array,start,length,preserve)
    参数描述
    array 必需。规定数组。
    start

    必需。数值。规定取出元素的开始位置。 0 = 第一个元素。

    如果该值设置为正数,则从前往后开始取。

    如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。

    length

    可选。数值。规定被返回数组的长度。

    如果该值设置为整数,则返回该数量的元素。

    如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。

    如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。

    preserve

    可选。规定函数是保留键名还是重置键名。可能的值:

    • true - 保留键名
    • false - 默认。重置键名
    返回值: 返回数组中的选定部分。

    25、array_unique():删除数组中的重复值。

    array_unique() 函数移除数组中的重复的值,并返回结果数组。

    当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。

    返回的数组中键名不变。

    被保留的数组将保持第一个数组项的键名类型。

    26、array_unshift():在数组开头插入一个或多个元素。

    array_unshift(array,value1,value2,value3...)
    参数描述
    array 必需。规定数组。
    value1 必需。规定要插入的值。
    value2 可选。规定要插入的值。
    value3 可选。规定要插入的值。
    返回值: 返回数组中新的元素数目。

    数值键名将从 0 开始,以 1 递增。字符串键名将保持不变。

    27、array_values():返回数组中所有的值。

    array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。

    28、array_walk():对数组中的每个成员应用用户函数。

    array_walk(array,myfunction,userdata...)
    参数描述
    array 必需。规定数组。
    myfunction 必需。用户自定义函数的名称。
    userdata,... 可选。规定用户自定义函数的参数。您能够向此函数传递任意多参数。
    返回值: 如果成功则返回 TRUE,否则返回 FALSE。

    array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。

    注释:您可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值

    <?php
    function myfunction($value,$key)
    {
    echo "The key $key has the value $value<br>";
    }
    $a=array("a"=>"red","b"=>"green","c"=>"blue");
    array_walk($a,"myfunction");
    ?>

    29、compact():创建包含变量名和它们的值的数组。

    compact(var1,var2...)
    参数描述
    var1 必需。可以是带有变量名的字符串,或者是变量数组。
    var2,... 可选。可以是带有变量名的字符串,或者是变量数组。允许多个参数。
    返回值: 返回带有所有变量名和它们的值的数组。
    <?php
    $firstname = "Bill";
    $lastname = "Gates";
    $age = "60";
    
    $name = array("firstname", "lastname");
    $result = compact($name, "location", "age");
    
    print_r($result);
    ?>

    30、list():把数组中的值赋给一些变量。

    list(var1,var2...)
    参数描述
    var1 必需。第一个需要赋值的变量。
    var2,... 可选。更多需要赋值的变量。
    返回值: 返回被赋值的数组。
    <?php
    $my_array = array("Dog","Cat","Horse");
    
    list($a, $b, $c) = $my_array;
    echo "I have several animals, a $a, a $b and a $c.";
    ?>

    31、extract():从数组中将变量导入到当前的符号表。

    extract(array,extract_rules,prefix)
    参数描述
    array 必需。规定要使用的数组。
    extract_rules

    可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。

    可能的值:

    • EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。
    • EXTR_SKIP - 如果有冲突,不覆盖已有的变量。
    • EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。
    • EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix。
    • EXTR_PREFIX_INVALID - 仅在不合法或数字变量名前加上前缀 prefix。
    • EXTR_IF_EXISTS - 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。
    • EXTR_PREFIX_IF_EXISTS - 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。
    • EXTR_REFS - 将变量作为引用提取。导入的变量仍然引用了数组参数的值。
    prefix

    可选。请注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。

    前缀和数组键名之间会自动加上一个下划线。

    <?php
    $a = "Original";
    $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
    extract($my_array);
    echo "$a = $a; $b = $b; $c = $c";
    ?>

    32、range():创建包含指定范围单元的数组。

    range(low,high,step)
    参数描述
    low 必需。规定数组的最低值。
    high 必需。规定数组的最高值。
    step 可选。规定元素之间的步进制。默认是 1。
    返回值: 返回包含从 low 到 high 的元素的数组。
    <?php
    $number = range(0,50,10);
    print_r ($number);
    ?>

    33、shuffle():将数组打乱。

    34、sort():对数组排序。(升)

    35、rsort():对数组逆向排序。

    36、sizeof():count() 的别名

  • 相关阅读:
    Things You Should Know
    因为web.config配置,导致(当前不会命中断点,还没有为该文档加载任何符号)
    【HTML5 Canvas游戏开发】笔记(二) 显示一张图片
    【HTML5 Canvas游戏开发】笔记(一) 概述和基础讲解
    const char* pcr&char* const pcr
    【Python扩展阅读【转】EasyGui 学习文档【超详细中文版】】
    【Python扩展阅读【转】】字符串的方法及注释
    【Python⑥】python的缩进,条件判断和循环
    【Python⑤】python序列---list和tuple
    【Python④】python恼人的字符串,格式化输出
  • 原文地址:https://www.cnblogs.com/hello-web/p/7628673.html
Copyright © 2011-2022 走看看