zoukankan      html  css  js  c++  java
  • PHP常用数组函数

    array_column

    返回数组中指定的一列

    array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array
    

    示例:

    $arr = [
        ['id' => 12, 'name' => 'paul', 'age' => 23],
        ['id' => 13, 'name' => 'itbsl', 'age' => 25],
        ['id' => 14, 'name' => 'jack', 'age' => 26]
    ];
    
    $result = array_column($arr, 'name');
    dump($result);
    

    输出:

    array(3) {
      [0] => string(4) "paul"
      [1] => string(5) "itbsl"
      [2] => string(4) "jack"
    }
    

    array_combine

    创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

    array_combine ( array $keys , array $values ) : array
    

    示例:

    $a = array('green', 'red', 'yellow');
    $b = array('avocado', 'apple', 'banana');
    $c = array_combine($a, $b);
    
    dump($c);
    

    输出:

    array(3) {
      ["green"] => string(7) "avocado"
      ["red"] => string(5) "apple"
      ["yellow"] => string(6) "banana"
    }
    

    array_count_values

    统计数组中所有的值在数组中出现的次数

    array_count_values ( array $array ) : array
    

    示例:

    $arr = [1, "hello", 1, "world", "hello"];
    $result = array_count_values($arr);
    dump($result);
    

    输出:

    array(3) {
      [1] => int(2)
      ["hello"] => int(2)
      ["world"] => int(1)
    }
    

    array_fill_keys

    使用指定的键和值填充数组

    array_fill_keys ( array $keys , mixed $value ) : array
    

    使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。
    示例:

    $arr1  = ['id', 'name', 'age'];
    $value = 25;
    
    $result = array_fill_keys($arr1, $value);
    dump($result);
    

    输出:

    array(3) {
      ["id"] => int(25)
      ["name"] => int(25)
      ["age"] => int(25)
    }
    

    array_flip

    交换数组中的键和值

    array_flip ( array $array ) : array
    

    array_flip() 返回一个反转后的 array,例如 array 中的键名变成了值,而 array 中的值成了键名。
    如果同一个值出现多次,则最后一个键名将作为它的值,其它键会被丢弃。
    示例:

    $arr  = ['id' => 12, 'name' => 'itbsl', 'age' => 12];
    
    $result = array_flip($arr);
    dump($result);
    

    输出:

    array(2) {
      [12] => string(3) "age"
      ["itbsl"] => string(4) "name"
    }
    

    array_intersect

    计算数组的交集

    array_intersect ( array $array1 , array $array2 [, array $... ] ) : array
    

    示例:

    $arr1 = ['green', 'yellow', 'red', 2];
    $arr2 = ['blue', 'green', 2, 'red'];
    
    $result = array_intersect($arr1, $arr2);
    dump($result);
    

    输出:

    array(3) {
      [0] => string(5) "green"
      [2] => string(3) "red"
      [3] => int(2)
    }
    

    array_key_exists

    检查数组里是否有指定的键名或索引

    array_key_exists ( mixed $key , array $array ) : bool
    

    数组里有键 key 时,array_key_exists() 返回 TRUE。 key 可以是任何能作为数组索引的值。
    示例:

    $search_array = ['first' => 1, 'second' => 2];
    
    if (array_key_exists('first', $search_array)) {
        echo "The 'first' element is in the array";
    } else {
        echo "The 'first' element is not in the array";
    }
    

    输出:

    The 'first' element is in the array
    

    array_keys

    返回数组中部分的或所有的键名
    说明:

    array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] ) : array
    

    如果指定了可选参数 search_value,则只返回该值的键名。否则 input 数组中的所有键名都会被返回。

    参数:
    $array
    一个数组,包含了要返回的键。
    $search_value
    如果指定了这个参数,只有包含这些值的键才会返回。
    $strict
    判断在搜索的时候是否该使用严格的比较(===)。

    示例:

    $arr1 = [0 => 100, 'color' => 'red'];
    dump(array_keys($arr1));
    
    $arr2 = ['blue', 'red', 'green', 'blue', 'blue'];
    dump(array_keys($arr2, 'blue'));
    
    $arr3 = [
        'color' => ['blue', 'red', 'green'],
        'size'  => ['small', 'medium', 'large']
    ];
    dump(array_keys($arr3));
    

    输出:

    array(2) {
      [0] => int(0)
      [1] => string(5) "color"
    }
    array(3) {
      [0] => int(0)
      [1] => int(3)
      [2] => int(4)
    }
    array(2) {
      [0] => string(5) "color"
      [1] => string(4) "size"
    }
    

    array_map

    为数组的每个元素应用回调函数

     array_map ( callable $callback , array $array1 [, array $... ] ) : array
    

    示例:

    $arr = ['green', 'blue', 'red', 'yellow'];
    $result = array_map('ucfirst', $arr);
    dump($result);
    

    输出:

    array(4) {
      [0] => string(5) "Green"
      [1] => string(4) "Blue"
      [2] => string(3) "Red"
      [3] => string(6) "Yellow"
    }
    

    array_merge

    合并一个或多个数组

    array_merge ( array $array1 [, array $... ] ) : array
    

    如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

    示例:

    $arr1 = [1, 2, 'name' => 'itbsl', 'age' => 12];
    $arr2 = [3, 4, 'name' => 'jack', 'hobby' => 'fishing', 'age' => 25];
    
    $result = array_merge($arr1, $arr2);
    dump($result);
    

    输出:

    array(7) {
      [0] => int(1)
      [1] => int(2)
      ["name"] => string(4) "jack"
      ["age"] => int(25)
      [2] => int(3)
      [3] => int(4)
      ["hobby"] => string(7) "fishing"
    }
    

    array_pop

    弹出数组最后一个单元(出栈)

    array_pop ( array &$array ) : mixed
    

    示例:

    $arr = [1, 2, 3, 4];
    array_pop($arr);
    
    dump($arr);
    

    输出:

    array(3) {
      [0] => int(1)
      [1] => int(2)
      [2] => int(3)
    }
    

    array_push

    将一个或多个单元压入数组的末尾(入栈)

    array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int
    

    示例:

    $arr = [1, 2, 3];
    array_push($arr, 4, 5);
    
    dump($arr);
    

    输出:

    array(5) {
      [0] => int(1)
      [1] => int(2)
      [2] => int(3)
      [3] => int(4)
      [4] => int(5)
    }
    

    array_rand

    从数组中随机取出一个或多个单元

    array_rand ( array $array [, int $num = 1 ] ) : mixed
    

    从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。 它使用了伪随机数产生算法,所以不适合密码学场景

    示例:

    $arr = ['green', 'blue', 'yellow', 'red', 'black'];
    
    dump(array_rand($arr));
    dump(array_rand($arr, 2));
    

    输出:

    int(4)
    array(2) {
      [0] => int(3)
      [1] => int(4)
    }
    

    array_reverse

    返回单元顺序相反的数组

    array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) : array
    

    参数:
    $array
    输入的数组。

    $preserve_keys
    如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。
    示例:

    $arr = ['green', 'blue', 'yellow', 2];
    $result = array_reverse($arr);
    
    dump($result);
    

    在数组中搜索给定的值,如果成功则返回首个相应的键名

    array_search ( mixed $needle , array $haystack [, bool $strict = false ] ) : mixed
    

    大海捞针,在大海(haystack)中搜索针( needle 参数)。

    示例:

    $arr = ['id' => 12, 'name' => 'kevin', 'age' => 25];
    $result = array_search('kevin', $arr);
    
    dump($result);
    

    输出:

    string(4) "name"
    

    array_shift

    将数组开头的单元移出数组

    array_shift ( array &$array ) : mixed
    

    array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。

    示例:

    $arr = [1, 2, 3, 4, 5];
    array_shift($arr);
    
    dump($arr);
    

    输出:

    array(4) {
      [0] => int(2)
      [1] => int(3)
      [2] => int(4)
      [3] => int(5)
    }
    

    array_slice

    从数组中取出一段

    array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array
    

    array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
    示例:

    $arr = ['green', 'blue', 'yellow', 'red', 'black', 'pink'];
    $result = array_slice($arr, 1, 2);
    
    dump($result);
    

    输出:

    array(2) {
      [0] => string(4) "blue"
      [1] => string(6) "yellow"
    }
    

    array_sum

    对数组中所有值求和

    array_sum ( array $array ) : number
    

    array_sum() 将数组中的所有值相加,并返回结果。

    示例:

    $arr1 = [10, 20, 30];
    $arr2 = ['a' => 10, 'b' => 20, 'c', 'd' => 40];
    
    dump(array_sum($arr1));
    dump(array_sum($arr2));
    

    输出:

    int(60)
    int(70)
    

    array_unique

    移除数组中重复的值

    array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) : array
    

    参数:
    $array
    输入的数组。

    $sort_flags
    排序类型标记:

    • SORT_REGULAR - 按照通常方法比较(不修改类型)
    • SORT_NUMERIC - 按照数字形式比较
    • SORT_STRING - 按照字符串形式比较
    • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。

    示例:

    $arr1 = [10, 20, 10, 30];
    
    dump(array_unique($arr1));
    

    输出:

    array(3) {
      [0] => int(10)
      [1] => int(20)
      [3] => int(30)
    }
    

    array_unshift

    在数组开头插入一个或多个单元

    array_unshift ( array &$array [, mixed $... ] ) : int
    

    array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

    示例:

    $arr = ['orange', 'banana'];
    array_unshift($arr, 'apple', 'strawberry');
    
    dump($arr);
    

    输出:

    array(4) {
      [0] => string(5) "apple"
      [1] => string(10) "strawberry"
      [2] => string(6) "orange"
      [3] => string(6) "banana"
    }
    

    array_values

    返回数组中所有的值

    array_values ( array $array ) : array
    

    示例:

    $arr = ['size' => 'XXL', 'color' => 'green'];
    
    dump(array_values($arr));
    

    输出:

    array(2) {
      [0] => string(3) "XXL"
      [1] => string(5) "green"
    }
    

    arsort

    对数组进行逆向排序并保持索引关系

    arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    本函数对数组进行排序,数组的索引保持和单元的关联。
    主要用于对那些单元顺序很重要的结合数组进行排序。

    示例:

    $fruits = ['d' => 'lemon', 'a' => 'orange', 'b' => 'banana', 'c' => 'apple'];
    arsort($fruits);
    dump($fruits);
    
    $nums = [4, 2, 1, 9, 10, 7];
    arsort($nums);
    dump($nums);
    

    输出:

    array(4) {
      ["a"] => string(6) "orange"
      ["d"] => string(5) "lemon"
      ["b"] => string(6) "banana"
      ["c"] => string(5) "apple"
    }
    array(6) {
      [4] => int(10)
      [3] => int(9)
      [5] => int(7)
      [0] => int(4)
      [1] => int(2)
      [2] => int(1)
    }
    

    asort

    对数组进行排序并保持索引关系

    asort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

    示例:

    $fruits = ['d' => 'lemon', 'a' => 'orange', 'b' => 'banana', 'c' => 'apple'];
    asort($fruits);
    dump($fruits);
    
    $nums = [4, 2, 1, 9, 10, 7];
    asort($nums);
    dump($nums);
    

    输出:

    array(4) {
      ["c"] => string(5) "apple"
      ["b"] => string(6) "banana"
      ["d"] => string(5) "lemon"
      ["a"] => string(6) "orange"
    }
    array(6) {
      [2] => int(1)
      [1] => int(2)
      [0] => int(4)
      [5] => int(7)
      [3] => int(9)
      [4] => int(10)
    }
    

    count

    计算数组中的单元数目,或对象中的属性个数

    count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int
    

    统计出数组里的所有元素的数量,或者对象里的东西。

    示例:

    $arr = [1, 2, 3, 4, 5];
    dump(count($arr));
    

    输出:

    int(5)
    

    in_array

    检查数组中是否存在某个值

    in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
    

    示例:

    $arr = [1, 2, 3, 4, 5];
    dump(in_array(1, $arr));
    dump(in_array(10, $arr));
    

    输出:

    bool(true)
    bool(false)
    

    key_exists

    array_key_exists()的别名

    krsort

    对数组按照键名逆向排序

    krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    对数组按照键名逆向排序,保留键名到数据的关联。主要用于结合数组。

    示例:

    $arr = ['a' => 'apple', 'o' => 'orange', 's' => 'strawberry', 'b' => 'banana'];
    krsort($arr);
    
    dump($arr);
    

    输出:

    array(4) {
      ["s"] => string(10) "strawberry"
      ["o"] => string(6) "orange"
      ["b"] => string(6) "banana"
      ["a"] => string(5) "apple"
    }
    

    ksort

    对数组按照键名排序

    ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    示例:

    $arr = ['a' => 'apple', 'o' => 'orange', 's' => 'strawberry', 'b' => 'banana'];
    ksort($arr);
    
    dump($arr);
    

    输出:

    array(4) {
      ["a"] => string(5) "apple"
      ["b"] => string(6) "banana"
      ["o"] => string(6) "orange"
      ["s"] => string(10) "strawberry"
    }
    

    list

    把数组中的值赋给一组变量

    list ( mixed $var1 [, mixed $... ] ) : array
    

    像 array() 一样,这不是真正的函数,而是语言结构。 list() 可以在单次操作内就为一组变量赋值。

    示例:

    $arr = ['coffee', 'brown', 'caffeine'];
    
    //列出所有变量
    list($drink, $color, $power) = $arr;
    
    echo "$drink is $color and $power makes it special.<br>";
    
    //列出他们其中的一个
    list(, , $power) = $arr;
    echo "I need $power.";
    

    输出:

    coffee is brown and caffeine makes it special.
    I need caffeine.
    

    rsort

    对数组逆向排序

    rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    本函数对数组进行逆向排序(最高到最低)。

    示例:

    $arr = [1, 3, 2, 5, 10];
    rsort($arr);
    
    dump($arr);
    

    输出:

    array(5) {
      [0] => int(10)
      [1] => int(5)
      [2] => int(3)
      [3] => int(2)
      [4] => int(1)
    }
    

    sort

    对数组排序

    sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
    

    本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。

    示例:

    $arr = [1, 3, 2, 5, 10];
    sort($arr);
    
    dump($arr);
    

    输出:

    array(5) {
      [0] => int(1)
      [1] => int(2)
      [2] => int(3)
      [3] => int(5)
      [4] => int(10)
    }
    

    shuffle

    打乱数组

    shuffle ( array &$array ) : bool
    

    本函数打乱(随机排列单元的顺序)一个数组。 它使用的是伪随机数产生器,并不适合密码学的场合。

    示例:

    $arr = [
        ['id' => 1, 'name' => 'paul', 'age' => 12],
        ['id' => 2, 'name' => 'jack', 'age' => 23],
        ['id' => 3, 'name' => 'jane', 'age' => 34],
        ['id' => 4, 'name' => 'lion', 'age' => 14],
    ];
    shuffle($arr);
    
    dump($arr);
    

    输出:

    array(4) {
      [0] => array(3) {
        ["id"] => int(2)
        ["name"] => string(4) "jack"
        ["age"] => int(23)
      }
      [1] => array(3) {
        ["id"] => int(1)
        ["name"] => string(4) "paul"
        ["age"] => int(12)
      }
      [2] => array(3) {
        ["id"] => int(4)
        ["name"] => string(4) "lion"
        ["age"] => int(14)
      }
      [3] => array(3) {
        ["id"] => int(3)
        ["name"] => string(4) "jane"
        ["age"] => int(34)
      }
    }
    

    usort

    使用用户自定义的比较函数对数组中的值进行排序

    usort ( array &$array , callable $value_compare_func ) : bool
    

    本函数将用用户自定义的比较函数对一个数组中的值进行排序。 如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

    示例:

    $arr = [
        ['id' => 1, 'name' => 'paul', 'age' => 12],
        ['id' => 2, 'name' => 'jack', 'age' => 23],
        ['id' => 3, 'name' => 'jane', 'age' => 34],
        ['id' => 4, 'name' => 'lion', 'age' => 14],
    ];
    
    //按照年龄从大到小排序
    function mySort($stu1, $stu2) {
        return $stu1['age'] < $stu2['age'];
    }
    
    usort($arr, 'mySort');
    
    dump($arr);
    

    输出:

    array(4) {
      [0] => array(3) {
        ["id"] => int(3)
        ["name"] => string(4) "jane"
        ["age"] => int(34)
      }
      [1] => array(3) {
        ["id"] => int(2)
        ["name"] => string(4) "jack"
        ["age"] => int(23)
      }
      [2] => array(3) {
        ["id"] => int(4)
        ["name"] => string(4) "lion"
        ["age"] => int(14)
      }
      [3] => array(3) {
        ["id"] => int(1)
        ["name"] => string(4) "paul"
        ["age"] => int(12)
      }
    }
    
  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/itbsl/p/10785548.html
Copyright © 2011-2022 走看看