PHP常用数组函数

  • array_change_key_case() : 把数组中所有键更改为小写或者大写
$testArr = ['B' => 1,'T' => 2];
$arr = array_change_key_case($testArr);
var_dump($arr); //array(2) { ["b"]=> int(1) ["t"]=> int(2) }
  • array_chunk() :将一个数组分隔为新的数组块
$testArr = [1,2,3,4];
$arr = array_chunk($testArr,2);
var_dump($arr); //array(2) { [0]=> array(2) { [0]=> int(1) [1]=> int(2) } [1]=> array(2) { [0]=> int(3) [1]=> int(4) } }
  • array_column() : 返回输入数组中某个单一列的值
$a = array(
    array(
        'id' => 5698,
        'first_name' => 'Bill',
        'last_name' => 'Gates',
    ),
    array(
        'id' => 4767,
        'first_name' => 'Steve',
        'last_name' => 'Jobs',
    ),
    array(
        'id' => 3809,
        'first_name' => 'Mark',
        'last_name' => 'Zuckerberg',
    )
);

$last_names = array_column($a, 'last_name');
print_r($last_names);   //Array ( [0] => Gates [1] => Jobs [2] => Zuckerberg )
  • array_combine() : 通过合并两个数组来创建一个新的数组,其中第一个参数数组是key,第二个参数数组是value
$arr1 = ['bill','steve','mark'];
$arr2 = [50,51,29];
$newArr = array_combine($arr1, $arr2);
print_r($newArr);//Array ( [bill] => 50 [steve] => 51 [mark] => 29 )
  • array_count_values() : 统计数组所有value出现的次数
$arr = ['bill','steve','mark','bill'];
$newArr = array_count_values($arr);
print_r($newArr); //Array ( [bill] => 2 [steve] => 1 [mark] => 1 )
  • array_diff() : 返回两个数组的差集数组。该差集数组包括第一个参数数组中有的但是剩下参数数组中没有的元素,只比较value
$arr = ['bill','steve', 12=>'mark'];
$arr2 = ['bill','steve','like'];
$arr3 = [1,2,3];
$newArr = array_diff($arr3,$arr,$arr2);
print_r($newArr); //Array ( [bill] => 2 [steve] => 1 [mark] => 1 )
  • array_diff_assoc() : 比较多个数组(常用来比较两个数组)的键名和键值,并返回差集。
$arr1 = [
    'b' => 199,
    'd' => 520,
    'ef' => 1
];

$arr2 = [
    'b' => 199,
    'd' => 520,
    'de' => 1
];

$newArr = array_diff_assoc($arr1,$arr2);
print_r($newArr); //Array ( [ef] => 1 )
  • array_diff_key() : 比较多个数组(常用来比较两个数组)的键名,并返回差集。
$arr1 = [
    'b' => 199,
    'd' => 520,
    'e123f' => 1
];

$arr2 = [
    'b' => 199,
    'd' => 520,
    'de' => 1
];

$newArr = array_diff_key($arr1, $arr2);
print_r($newArr); //Array ( [e123f] => 1 )
  • array_diff_uassoc() : 使用自定义函数来比较键值和键名,并返回差集。
$arr1 = [
    'b' => 199,
    'd' => 520,
    'e123f' => 1
];

$arr2 = [
    'b' => 199,
    'd' => 520,
    'de' => 1
];

function keyDiff($a, $b)
{
    if($a === $b) {
        return 0;
    }

    return ($a > $b) ? 1 : -1;
}

$newArr = array_diff_uassoc($arr1, $arr2,'keyDiff');
print_r($newArr); //Array ( [e123f] => 1 )
  • array_diff_ukey() : 使用自定义函数比较两个(或者多个)数组的key,并返回差集
$a1 = array("a"=>"red","b"=>"green","c"=>"blue");
$a2 = array("a"=>"blue","b"=>"black","e"=>"blue");

function keyDiff($a, $b)
{
    if($a === $b) {
        return 0;
    }

    return ($a > $b) ? 1 : -1;
}

$newArr = array_diff_ukey($a1, $a2,'keyDiff');
print_r($newArr); //Array ( [c] => blue )
  • array_fill() : 用给定的键值填充数组
$newArr = array_fill(4,3,'like');
var_dump($newArr); //array(3) { [4]=> string(4) "like" [5]=> string(4) "like" [6]=> string(4) "like" }
  • array_fill_keys() : 用给定的键数组和值来填充数组
$keysArr = ['a','b','c'];
$newArr = array_fill_keys($keysArr,'like');
print_r($newArr); //Array ( [a] => like [b] => like [c] => like )
  • array_filter() : 使用指定的回调函数过滤数组元素
$arr = [1,2,'test',999];
$newArr =array_filter($arr,'is_string');
var_dump($newArr); //array(1) { [2]=> string(4) "test" }
  • array_flip() : 反转数组的键和值
$arr = ['a' => 9, 'b' => 11, 'c' => 13];
$newArr = array_flip($arr);
print_r($newArr); //Array ( [9] => a [11] => b [13] => c )
  • array_intersect() : 比较数组的键值(不比较键名),返回交集
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$newArr = array_intersect($a1, $a2);
print_r($newArr); //Array ( [a] => red [b] => green [c] => blue )
  • array_intersect_assoc() : 比较数组的键值和键名,返回交集
$a1 = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2 = array("a"=>"red","b"=>"green","c"=>"blue");
$newArr = array_intersect_assoc($a1,$a2);
print_r($newArr); //Array ( [a] => red [b] => green [c] => blue )
  • array_intersect_key() : 比较数组的键名(不比较键值),返回交集
$a1 = array("a"=>"red","b"=>"green","c"=>"blue");
$a2 = array("a"=>"red","c"=>"blue","d"=>"pink");
$newArr = array_intersect_key($a1,$a2);
print_r($newArr); //Array ( [a] => red [c] => blue )
  • array_intersect_ukey() : 使用自定义方法方法比较数组的键名(不比较键值),返回交集
function myfunction($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}

$a1 = array("a"=>"red","b"=>"green","c"=>"blue");
$a2 = array("d"=>"red","b"=>"green","e"=>"blue");
$newArr = array_intersect_ukey($a1, $a2, 'myfunction');
print_r($newArr); //Array ( [b] => green )
  • array_merge() : 合并一个或多个数组,如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
$arr1 = ['a','b'=>'b','c'];
$arr2 = ['e','b'=>'f','g'];
$newArr = array_merge($arr1, $arr2);
print_r($newArr); //Array ( [0] => a [b] => f [1] => c [2] => e [3] => g )
  • array_merge_recursive():合并一个或多个数组,该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
$arr1 = ['a','b'=>'b','c'];
$arr2 = ['e','b'=>'f','g'];
$newArr = array_merge_recursive($arr1, $arr2);
print_r($newArr); //Array ( [0] => a [b] => Array ( [0] => b [1] => f ) [1] => c [2] => e [3] => g )
$arr1 = [1,2,3];
$newArr = array_pad($arr1,5,'ok');
print_r($newArr); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => ok [4] => ok )
  • array_pop() : 弹出数组最后一个元素(出栈)
$arr = ['red','green','blue'];
$fruit = array_pop($arr);
print_r($arr); //Array ( [0] => red [1] => green )
print_r($fruit); //blue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值