php数组函数总结

$arr1 = ['a', 'b', 'c'];
$arr2 = ['1', '2', '3'];
//将$arr1作为合成数组的key,将$arr2作为合成数字的值,且$arr1与$arr2的元素个数必须一致
$arr3 = array_combine($arr1, $arr2);
$value = array_values($arr3); //返回数组的values值
$key = array_keys($arr3); //返回数组的key值
$arr3 = array_flip($arr3); //交换数组的key与value值

//list语法结构
$a  = $arr1[0];
$b = $arr1[1]; 写法等价于 list($a, $b, $c) = $arr1; //仅仅适用于索引数组,无法对关联数组使用
$c = $arr1[2];

//一对互逆函数
extract($arr3) 与 $arr3 = compact('a', 'b', 'c') 互逆

//数组参数过滤
$arr3 = array_filter($arr3, function($val){
  return $val%2 == 0; //返回true验证通过,返回false验证失败
});

//array_filter不写function
$arr3 = array_filter($arr3, function($val)
   return $val; //默认去除空值 写法等价于: $arr3 = array_filter($arr3);
});
$array = [1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 5];
$unique = array_unique($array); //去除重复value值,保留第一个索引

$arr =[
['age' => 17, 'name' => 'Mike'],
['age' => 18, 'name' => 'Dive'],
['age' => 19, 'name' => 'Lose'],
];
$column = array_column($arr, 'age'); //返回指定列的值

//数组遍历
$cities = ['Berlin', 'KYIV', 'Amsterdam', 'Riga'];
$aliases = array_map('strtolower', $cities);//将数组转换为小写
$array = array_map(function($val){
return ucfirst($val);
}, $aliases);
$array = [
'id' => '1', 'age'=> '18', 'name' => 'Mike'
];
array_walk($array, function(&$value, $key){
  $value = $key .' is '. $value;
});

//数组合并
$array1 = ['a' => 'a', 'b' => 'b', 'c' => 'c'];
$array2 = ['a' => 'A', 'b' => 'B', 'D' => 'D'];
$merge = array_merge($array1, $array2); //相同键值后一个会覆盖前一个

//数组交差集合
$array1 = [1, 2, 4, 5];
$array2 = [1, 2, 3, 6];
$diff = array_diff($array1, $array2); //返回第一个数组与第二个数组的差集
$sect = array_intersect($array1, $array2); //返回两个数组的交集

//数组数学运算
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$num = array_sum($array); //array_sum数组的求和
$num = array_product($array); //数组元素的乘积
//values个数统计出现次数
$things = ['apple', 'apple', 'banana', 'tree', 'tree', 'tree'];
$arr = array_count_values($things);

//生成长度固定的数组
$bind = array_fill(0, 5, '?');
//创建范围数组
$letters = range('a', 'z');
//获取指定位子的数组元素
$tops = array_slice($letters, 0, 5);

//数组排序
// a 保持索引关系进行排序
// k 依据键名排序
// r 对数组进行逆向排序
// u 使用用户自定义排序规则排序
$arr = array(
    'a' => 'c',
'b' => 'b',
'c' => 'a',
);
sort($arr); //不保留键值,从新建立索引
asort($arr); //会保留键值


本文原文:
https://code.tutsplus.com/tutorials/working-with-php-arrays-in-the-right-way--cms-28606

 
 






posted @ 2019-07-24 16:18  LsqWdkSmq  阅读(121)  评论(0)    收藏  举报