`
.Aky.
  • 浏览: 31211 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

复习下数组函数

    博客分类:
  • PHP
 
阅读更多

1、array_chunk() 将一个数组分割成多个。ps:第一个参数是需要分割的数组;函数的第二个参数是决定每组元素的个数;第三个可选参数则是布尔值,用来结果数组是否使用原有数组的键名,设置false则是从零开始的索引数组

 

2、array_combine()  通过合并两个大小相同的数组来创建一个新的数组(返回一个新数组),其中一个数组的值作为新数组的键名,另外一个数组的值作为新数组的值。ps:如果其中一个数组为空,或者大小不相同,返回false。

 

3、array_count_values() 统计一个数组 值出现的次数。返回一个以原数组值为键名,原数组值出现的次数作为为值的新数组。

 

4、array_diff() 通过值进行对比,计算数组的差集。第一个参数为要对比的数组,第二个参数为对比数组,接下来是可选的对比数组。返回一个值在对比数组存在,在其它参数数组中不存在的新数组。

 

5、array_diff_assoc() 键名和值都要进行对比,计算数组的差集(索引检查计算数组差集)。和array_diff函数唯一不同的就是,是键名和值都要行对比。返回一个键名和值在要对比数组存在,在其它参数数组中不存在的新数组。

 

6、array_diff_key() 从函数名称就可以看出,是通过键名进行对比,计算数组的差集。返回一个键名在要对比数组存在,在其它参数数组中不存在的新数组。

 

7、array_diff_uassoc() 通过一个回调函数来进行对比,计算数组的差集(索引检查计算数组差集)。 此函数与array_diff_assoc()函数唯一不同的就是多了一个必须参数(最后一个参数),是一个回调函数的名称。回调函数必须有两参数,即两个要进行对比的键名。例如:

function key_compare_func($a, $b)
{

//     在我的设定当中,正常的比较b不等于e,但是有需求提出b等于e
    if(($a === 'b' && $b === 'e') || ($a === 'e' && $b === 'b')) {
        return 0;
    }

    if ($a === $b) {
        echo '1'.$a.$b.' ';
        return 0;
    }
    echo '2'.$a.$b." ";
    return ($a > $b)? 1: -1;
}
$array2 = array("a" => "green", "b"=>"yellow", "c"=>"yellow");
$array3 = array("d" => "green", "e"=>"yellow", "f"=>"yellow");
$result = array_diff_uassoc($array2, $array3, "key_compare_func");
echo "<br />";
print_r($result);
exit();

 

8、array_diff_ukey() 用回调函数对键名比较,计算数组的差集。跟array_diff()不同的是对键名进行比较,回调函数用法也是对比参数,第一个小于第二个参数,等于第二个参数,大于第二个参数分别返回-1,0,1。

 

9、array_fill() 用指定的值填充数组。第一个参数作为起始,第二个参数表示填充的元素个数,第三个是指定填充的值。

 

10、array_filter() 使用回调函数过滤数组的单元(用户不应在回调函数中修改数组本身。例如增加/删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了,此函数的行为将不可预测。)。如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变。如果没有使用回调函数,则会把等值为false的单元过滤。

 

11、array_flip() 返回一个反转后的数组(交换键名和值),失败则返回NULL。如果相同的值出现多次,则最后一个值将作为反转后数组的键名,其它相同值的单元都将丢失。原数组的值类型不是字符串和整形,都将会发出一个警告,并且有问题的键/值对都不会被反转。

 

12、array_intersect() 通过值进行对比,计算数组的交集。返回一个在值需对比数组中存在,同时也在对比数组中存在(交集)的新数组,键名不变。

 

13、array_intersect_assoc() 键名和值都要进行对比,计算数组的交集。跟array_diff_assoc()类似,不同的是计算交集,array_diff_assoc()则计算差集

 

14、array_intersect_key() 通过键名进行对比,计算数组的交集。返回一个键名在需对比数组中存在,同时也在对比数组中存在(交集)的新数组。

 

15、array_intersect_uassoc()通过一个回调函数来进行对比,计算数组的交集(索引检查计算数组差集)。

与array_diff_uassoc()类似,不同的是计算交集,array_diff_uassoc则是计算差集。

 

16、array_intersect_ukey() 用回调函数对键名比较,计算数组的交集。跟array_intersect()不同的是对键名进行比较。回调函数用法也是对比参数,第一个小于第二个参数,等于第二个参数,大于第二个参数分别返回-1,0,1。

 

17、array_key_exists() 检查给定的键名或索引是否存在数组中。存在返回true,否则返回false。第一个参数是指定的键名,第二个参数是需要检查的数组。

 

18、array_keys() 返回数组的所有键名。第二个参数是指定值,返回键名,为可选参数。第三个参数设置为true,则要===第二参数的类型,返回键名,默认为false。

 

19、array_map() 将回调函数作用于数组的每一个单元上,返回一个回调函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。ps:使用多个数组的时候,最好数组的大小都相同,否则最小的将被用空的单元扩充。如果使用NULL作为回调函数,则会构建一个新数组。例如:

<?php
$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);
?>

 

 

未完待续……

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics