码迷,mamicode.com
首页 > 编程语言 > 详细

php常用数组函数查询手册

时间:2016-05-13 01:37:17      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

php数组常用函数

  1. array_map ( callable callback,arrayarr1 [, array $… ] )

返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。 callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。


/*例1*/

<?php
 function  cube ( $n )
{
    return( $n  *  $n  *  $n );
}
 $a  = array( 1 ,  2 ,  3 ,  4 ,  5 );
 $b  =  array_map ( "cube" ,  $a );
 print_r ( $b );
/**
 输出
 Array
 (
     [0] => 1
     [1] => 8
     [2] => 27
     [3] => 64
     [4] => 125
 )
**/
 ?> 
<?php
/*例2*/
/*将多个数组进行合并*/
$a  = array( 1 ,  2 ,  3 ,  4 ,  5 );
 $b  = array( "one" ,  "two" ,  "three" ,  "four" ,  "five" );
 $c  = array( "uno" ,  "dos" ,  "tres" ,  "cuatro" ,  "cinco" );
 $d  =  array_map ( null ,  $a ,  $b ,  $c );
 print_r ( $d );
/*输出
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )
    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )
    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )
    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )
    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )
)
*/
 ?> 

  1. range ( mixed start,mixedlimit [, number $step = 1 ] )

step表示间隔值,不写默认为1

/*
例1,产生一组数字
*/
$nums = range(1, 5);
print_r($nums);
/*
输出:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
*/
$nums = range(1, 5, 2);
print_r($nums);
/*
输出:
Array ( [0] => 1 [1] => 3 [2] => 5 )
*/
/*
例2,产生一组字母数组
*/
$array = range(‘a‘,‘f‘);
print_r($array);
/*
输出:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )
*/
$array = array(‘a‘, ‘f‘, 2);
print_r($array);
/*
输出:
print_r($array);
/*
输出:
Array ( [0] => a [1] => c [2] => e )
*/

  1. array_merge ( array array1[,array… ] )

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

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

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

/*
解释:如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
*/
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 8, 9);
$array3 = array_merge($array1, $array2);
print_r($array3);
/*
输出:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 1
    [6] => 2
    [7] => 8
    [8] => 9
)
*/

  1. array_merge_recursive ( array array1[,array… ] ) 递归地合并一个或多个数组

如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。

会根据键名相同一层一层的将值进行合并


/*
例1
*/
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => array(‘a‘=>"red"), "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
/*
输出:
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [a] => red     重点
                )
            [0] => blue
        )
    [0] => 5
    [1] => 10
)
*/
/*
例2
*/
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" =>"red", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
/*
输出:
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => red  重点
                )
            [0] => blue
        )
    [0] => 5
    [1] => 10
)
*/

  1. array_pad ( array input,intpad_size , mixed $pad_value ) 给数组增加值到指定的长度,原数组不会改变
<?php
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// not padded
/*
如果size<数组的长度,将不会有变化
*/
?>

  1. array_pop ( array &$array ) 移出最后一个元素,原数组会改变

array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。 如果 array 为空(或者不是数组)将返回 NULL 。 此外如果被调用不是一个数则会产生一个 Warning。


<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>
/*
输出
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)
*/

  1. array_shift() 将数组开头的单元移出数组,原数组会改变, 使用此函数后会重置(reset())array 指针。

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

  1. int array_push ( array &array,mixedvar [, mixed $… ] )

array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加
返回处理后数组的元素个数

  1. reset ( array &$array )将数组的内部指针指向第一个单元

    reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值。
    数组为空返回false

  2. end ( array &$array )

    end() 将 array 的内部指针移动到最后一个单元并返回其值。
    数组为空返回false

    • 参数array,该数组是通过引用传递的,因为它会被这个函数修改。 这意味着你必须传入一个真正的变量,而不是函数返回的数组,因为只有真正的变量才能以引用传递。
  3. mixed array_rand ( array input[,intnum_req = 1 ] )

从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。

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

  • array_replace()

  • array_reverse()

  • array_sum()

  • sort() 将值排序完成后,会是一个索引数组,即便原来是一个关联数组

  • usort()

  • rsort()

  • ksort()

  • krsort()

  • uksort()

  • asort()

  • arstor()

  • in_array()

  • array_splice()

php常用数组函数查询手册

标签:

原文地址:http://blog.csdn.net/sinat_32124195/article/details/51344564

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!