php常用的函数-持续更新中

2016年12月6日

1.array_reverse 返回一个单元顺序相反的数组 返回一个单元顺序相反的数组 array– array_reverse ( array $array [, bool $preserve_keys = false ] ) preserve :持续的,维持

例子:

<?php
$input  = array(“php”, 4.0, array(“green”, “red”));
$result = array_reverse($input);
$result_keyed = array_reverse($input, true);
?>
Array
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 4
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)

[1] => 4
[0] => php
)

2. preg_match 和 preg_match_all的对比

preg_match只匹配一次,preg_match_all是全文匹配,即所有跟表达式一致的都找出来。

preg_match 是返回一维数组, preg_match_all 是返回多维数组
preg_match()
preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all() 函数。

preg_match_all()
preg_match_all() 函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回 FALSE 。

3. array_key_exists — 检查给定的键名或索引是否存在于数组中

array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。

辨析下.array_key_exists() 于isset()的区别,栗子如下:

isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。
<?php $search_array = array(‘first’ => null, ‘second’ => 4);
// returns false
isset($search_array[‘first’]);
// returns true
array_key_exists(‘first’, $search_array);
?>

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

举个栗子

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

以上例程会输出:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)
5.array_reduce用回调函数迭代地将数组简化为单一的值
举个栗子:
<?php
function rsum($v, $w)
{
$v += $w;
return $v;
}

function rmul($v, $w)
{
$v *= $w;
return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", "No data to reduce");
?>

这将使 $b 的值为 15$c 的值为 1200(= 10*1*2*3*4*5),以及 $d 的值为 1

6. array_filter用回调函数过滤数组中的单元   暂时测试没过,  判断奇数和偶数的方法是正确的.

function odd($var)
{
// returns whether the input integer is odd
return($var & 1);
}

function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));

 

One Comment

  • xiaohu 2016年12月7日 at 下午5:01

    array_slice — 从数组中取出一段
    array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

    array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列
    例子:
    <?php
    $input = array("a", "b", "c", "d", "e");

    $output = array_slice($input, 2); // returns "c", "d", and "e"
    $output = array_slice($input, -2, 1); // returns "d"
    $output = array_slice($input, 0, 3); // returns "a", "b", and "c"

发表评论