PHP5薄荷教程[20]数组操作函数(1)

一、生成和分解
1、array array( [key =>] value, ...)
  生成数组,这在《[5]数组》里有详细说明。
2、array range ( mixed low, mixed high [, number step] )
  生成一个数组,其中包括low到high的所有字符,可以是数字,也可以是字符,按ASCII码顺序填充。如果low>high,则数组会降序排列。step表示每一次加多少。如range(1,9,2)生成array(1,3,5,7,9);range('c','a')生成array('c','b','a')。
3、array array_fill ( int start_index, int num, mixed value )
  生成一个数组,使索引start_index开始的num个元素的值为value。如print_r(array_fill(2,3,"v"))输出Array ( [2] => v [3] => v [4] => v ) 。
4、array array_pad ( array input, int pad_size, mixed pad_value )
  将数组input用pad_value填充到pad_size指定的宽度。如果pad_size是正数且大于input的元素数,则在右边填充;如果pad_size是负数且绝对值大于input的元素数,则在左边填充;如果pad_size小于input的元素数,则不填充。如:array_pad(array(1,2),4,0)生成array(1,2,0,0);array_pad(array(3,4),-4,0)生成array(0,0,3,4)。
5、array compact ( mixed varname [, mixed ...] )
  将变量打包成数组,也可以用一个数组来表示变量名。如果变量不存在,则不添加。如:
$v1=1;$v2=2;$v3=3;
$varr=array("v2","v3");
print_r(compact("v1",$varr));
输出:Array([v1] => 1 [v2] => 2 [v3] => 3)
6、int extract ( array var_array [, int extract_type [, string prefix]] )
  将var_array中的元素分解出来成为独立变量。其中extract_type可以取以下值:
EXTR_OVERWRITE(默认) 覆盖已存在的变量。
EXTR_SKIP 跳过已存在的变量。
EXTR_PREFIX_SAME 如果变量已存在,则在变量名前加上prefix前缀。
EXTR_PREFIX_ALL 在所有变量名前加上prefix前缀。
EXTR_PREFIX_INVALID 在不合法的或者数字的变量名前加上prefix前缀。
EXTR_IF_EXISTS 只覆盖已存在的变量,不存在的变量不被分解出来。
EXTR_PREFIX_IF_EXISTS 只分解出已存的变量,并在变量名前加上prefix前缀。
EXTR_REFS 以引用的形式将变量分解出来。也就是说,改变了分解出的变量,也就改变了数组中的元素。

二、排序
1、bool sort ( array &array [, int sort_flags] )
  对一个数组进行排序,成功返回true,否则返回false。排序后原数组的键将失效。sort_flags可以取以下值:
SORT_REGULAR(默认) 按照一般规则排序
SORT_NUMERIC 按数字排序
SORT_STRING 按字符串排序
2、bool rsort ( array &array [, int sort_flags] )
  规则同sort(),但是反向排序。
3、bool asort ( array &array [, int sort_flags] )
  同sort(),但保留键名。
4、bool arsort ( array &array [, int sort_flags] )
  规则同asort(),但是反向排序。
5、bool ksort ( array &array [, int sort_flags] )
  按键名排序。
6、bool krsort ( array &array [, int sort_flags] )
  规则同ksort(),但是反向排序。
7、bool natsort ( array &array )
  按“自然”法则排序。
8、bool natcasesort ( array &array )
  规则同natsort(),但不区分大小写。
9、bool shuffle ( array &array )
  打乱array的顺序,原数组的键将失效。
10、array array_reverse ( array array [, bool preserve_keys] )
  将array倒序排列并返回。preserver_keys设为true则强制保留原来的键名。

三、组合和分割
1、array array_combine ( array keys, array values )
  将两个数组中的元素按键、值重新组合。如果元素数不匹配则返回false。如:
$key=array('k1','k2');
$value=array('v1','v2');
print_r(array_combine($key,$value));
输出:Array ( [k1] => v1 [k2] => v2 )
2、array array_merge ( array array1 [, array array2 [, array ...]] )
  将各数组合按顺序组合并返回一个新的数组。如果有重复的键名,则后面的键值会覆盖前者;如果有重复的数字索引,那么后面的元素会被重新索引,并不会覆盖前者。
3、array array_merge_recursive ( array array1 [, array ...] )
  递归地组合各数组。若有重复则按array_merge()的规则处理。如:
<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
?>
$result是:
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)
4、array array_chunk ( array input, int size [, bool preserve_keys] )
  按size指定的长度分割input数组。preserver_keys设为true则强制保留原来的键名。
5、array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )
  在array中offset位置开始截取length个元素。preserver_keys设为true则强制保留原来的键名。offset和length均可为负。
6、array array_splice ( array &input, int offset [, int length [, array replacement]] )
  在array中offset位置开始截取length个元素,并在原数组中将其替换为replacement。preserver_keys设为true则强制保留原来的键名。offset和length均可为负。如:
$arr=array(1,2,3,4);
print_r(array_splice($arr,0,1,array(5,6)));
print_r($arr);
输出:Array ( [0] => 1 )
   Array ( [0] => 5 [1] => 6 [2] => 2 [3] => 3 [4] => 4 )
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值