PHP常用数组函数

(1)array_key_exists

含义:检查给定的键名或索引是否存在于数组中

说明:

    bool array_key_exists(mixed $key, array $search)
在给定的 key 存在于数组中时返回 TRUEkey 可以是任何能作为数组索引的值。
  • key:要检查的键名。
  • search:数组,可能包含待检查的键。
  • 返回值:成功时返回 TRUE ,失败时返回 FALSE

(2)array_keys

含义:返回数组中所有的键名

说明:

    array array_keys(array $input[, mixed $search_value = NULL[,bool $strict = false]])
如果指定了可选参数search_value,则只返回该值的键名。否则将返回 input 数组中的所有键名。
  • input:一个数组,包含了要返回的键。
  • search_value:如果指定了这个参数,只有包含这些值的键才会返回。
  • strict:判断在搜索的时候是否使用严格的比较(===)。
  • 返回值:返回 input 数组中的数字或者字符串的键名。
例子:
    <?php
        $array  = array( 0  =>  100 ,  "color"  =>  "red" );
        print_r ( array_keys ( $array ));
    
        $array  = array( "blue" ,  "red" ,  "green" ,  "blue" ,  "blue" );
        print_r ( array_keys ( $array ,  "blue" ));
    
        $array  = array( "color"  => array( "blue" ,  "red" ,  "green" ),
                    "size"   => array( "small" ,  "medium" ,  "large" ));
        print_r ( array_keys ( $array ));
     ?> 
结果:
    Array
    (
        [0] => 0
        [1] => color
    )
    Array
    (
        [0] => 0
        [1] => 3
        [2] => 4
    )
    Array
    (
        [0] => color
        [1] => size
    )

(3)array_values

含义:返回数组中所有的值

说明:

    array array_values(array $input)
  • input:一个数组。
  • 返回值:返回 input 数组中所有的值并给其建立数字索引。

(4)array_merge

含义:合并一个或多个数组

说明:

    array array_merge(array $array1[, array $...])
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
例子:
    <?php
        $array1  = array( "color"  =>  "red" ,  2 ,  4 );
        $array2  = array( "a" ,  "b" ,  "color"  =>  "green" ,  "shape"  =>  "trapezoid" ,  4 );
        $result  =  array_merge ( $array1 ,  $array2 );
        print_r ( $result );
    ?> 
 
结果:
    Array
    (
        [color] => green
        [0] => 2
        [1] => 4
        [2] => a
        [3] => b
        [shape] => trapezoid
        [4] => 4
    )

(5)array_rand

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

说明:

mixed array_rand(array $input[,int $num_req=1])
从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。
  • input:一个数组。
  • num_req:指明了你想取出多少个单元。如果指定的数目超过了数组里的数量将会产生一个 E_WARNING 级别的错误。
  • 返回值:如果你只取出一个,array_rand() 返回一个随机的单元键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

(6)array_splice

含义:把数组中的一部分去掉并用其他值取代

说明:

mixed array_splice(array &$input,int $offset[,int $length=0[, mixed $replacement]])
input 数组中由 offset 和 length指定的单元去掉,如果提供了replacement参数,则用其中的单元取代。注意input中的数字键名不被保留。
  • input:输入的数组。
  • offset:如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。
  • length:如果省略 length,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length
  • replacement:如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。 如果 offsetlength 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。注意替换数组中的键名不保留。 如果用来替换 replacement 只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL

(7)shuffle

含义:将数组打乱

说明:

bool shuffle ( array &$array )
该函数打乱一个数组(即:随机排列单元的顺序)
  • 返回值:成功时返回 TRUE ,失败时返回 FALSE

(8)array_filter

含义:过滤(空)数组

说明:

array array_filter  ( array $input  [, callable  $callback  = ""  ] )

依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE ,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

例子:

<?php
    $entry  = array(
          0  =>  'foo' ,
          1  =>  false ,
          2  => - 1 ,
          3  =>  null ,
          4  =>  ''
    );
    print_r ( array_filter ( $entry ));
 ?>   

以上例程会输出:

Array
(
    [0] => foo
    [2] => -1
)

(9)array_column

含义:返回数组中指定的一列

说明:

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

array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。

例子:

<?php
    $records  = array(
        array(
             'id'  =>  2135 ,
             'first_name'  =>  'John' ,
             'last_name'  =>  'Doe' ,
        ),
        array(
             'id'  =>  3245 ,
             'first_name'  =>  'Sally' ,
             'last_name'  =>  'Smith' ,
        ),
        array(
             'id'  =>  5342 ,
             'first_name'  =>  'Jane' ,
             'last_name'  =>  'Jones' ,
        ),
        array(
             'id'  =>  5623 ,
             'first_name'  =>  'Peter' ,
             'last_name'  =>  'Doe' ,
        )
    );
    $last_names  =  array_column ( $records ,  'last_name' ,  'id' );
    print_r ( $last_names );

 ?>   

以上例程会输出:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

(10)array_multisort

含义:对多个数组或多维数组进行排序

说明:

bool array_multisort  ( array &$arr  [, mixed  $arg  = SORT_ASC  [, mixed  $arg  = SORT_REGULAR  [, mixed  $...  ]]] )

    array_multisort()  可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。 

关联( string )键名保持不变,但数字键名会被重新索引。 

排序顺序标志: 
1.SORT_ASC  - 按照上升顺序排序 
2.SORT_DESC  - 按照下降顺序排序 


排序类型标志: 
1.SORT_REGULAR  - 将项目按照通常方法比较 
2.SORT_NUMERIC  - 将项目按照数值比较 
3.SORT_STRING  - 将项目按照字符串比较 


每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC   SORT_REGULAR  

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

本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。 

成功时返回 TRUE , 或者在失败时返回 FALSE 。

例子:

<?php
    $records  = array(
        array(
             'id'  =>  2135 ,
             'first_name'  =>  'John' ,
             'last_name'  =>  'Doe' ,
        ),
        array(
             'id'  =>  3245 ,
             'first_name'  =>  'Sally' ,
             'last_name'  =>  'Smith' ,
        ),
        array(
             'id'  =>  5342 ,
             'first_name'  =>  'Jane' ,
             'last_name'  =>  'Jones' ,
        ),
        array(
             'id'  =>  5623 ,
             'first_name'  =>  'Peter' ,
             'last_name'  =>  'Doe' ,
        )
    );
    $last_names  =  array_column ( $records ,  'last_name' ,  'id' );
    print_r ( $last_names );

 ?>   

以上例程会输出:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值