数组函数学习一

1. array_chunk 将一个数组分割成多个

 $arr1=array('age'=>6,3,'hello');
 $arr2=array_chunk($arr1,2);
 $arr3=array_chunk($arr1,2,true); //保持了原有的键名
 print_r($arr2);
 print_r($arr3);

函数学习

函数学习

2.array_column 返回数组中指定的一列

 $arr1=array(
 array('id'=>1,'name'=>'he'),
 array('id'=>2,'name'=>'ccj'),
 array('id'=>2,'name'=>'qq')
 );
//二维数组变成一维数组,并将name列提出来
$arr2=array_column($arr1,'name');
print_r($arr2);

//取出name列,并用对应的id作为键值
$arr3=array_column($arr1,'name','id');
print_r($arr3);

函数学习

函数学习

3.array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

$arr1=array('id'=>3,'name'=>'ceshi','age'=>16);
$arr2=array('id'=>6,'name'=>'test','age'=>26);
$arr3=array_combine($arr1,$arr2);
print_r($arr3);

函数学习

4.array_count_values 统计数组中所有的值

$arr1=array('id'=>16,'name'=>'ceshi','age'=>16,'new_name'=>'hello');
$arr2=array_count_values($arr1);
print_r($arr2);

函数学习

5.array_diff_assoc 带索引检查计算数组的差集

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$arr3=array_diff_assoc($array1,$array2);
print_r($arr3);

函数学习
注:上面的例子中可以看到键值对 “a” => “green” 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 => “red” 出现在输出中是因为第二个参数中的 “red” 的键名是 1。

6. array_diff_key 键名比较计算数组的差集

$arr1=array('blue'=>1,'red'=>2,'green'=>4,'purple'=>3);
$arr2=array('green'=>5,'blue'=>2,'yellow'=>4,'cyan'=>7);
$arr3=array_diff_key($arr1,$arr2);
print_r($arr3);

函数学习

7. array_diff 计算数组差集

$arr1=array('a'=>'green','red','blue','red');
        $arr2=array('b'=>'green','yellow','red');
        $arr3=array_diff($arr1,$arr2);
        print_r($arr3);

函数学习

8.array_fill_keys 使用指定的键和值填充数组

$arr4=array_fill_keys($arr1,$arr2);
print_r($arr3);
print_r($arr4);

函数学习

函数学习

9. array_fill 用给定的值填充数组

$arr1=array_fill(3,4,'banana');
$arr2=array_fill(-2,4,'banana');
print_r($arr1);
print_r($arr2);

函数学习

10. 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);
print_r(array_filter($array1, "odd"));
print_r(array_filter($array2, "even"));

函数学习

不使用callback时的array_filter()
$entry = array(
  0 => 'foo',
  1 => false,
  2 => -1,
  3 => null,
  4 => ''
);
print_r(array_filter($entry));

函数学习

带 flag 标记的 array_filter()
//ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
//ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

print_r(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

print_r(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));

函数学习

本作品采用《CC 协议》,转载必须注明作者和本文链接
The sun is always behind the storm~
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!