使用 array_map() 应用函数到数组的每个元素。
$numbers = [1, 2, 3, 4, 5];
$squares = array_map(function($number) {
return $number * $number;
}, $numbers);
使用 array_map() 合并n个数组,数组长度需要一致
<?php
$a = [1, 2, 3, 4, 5];
$b = ['one', 'two', 'three', 'four', 'five'];
$c = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];
$d = array_map(null, $a, $b, $c);
print_r($d);
使用 array_filter() 过滤数组中的元素。
$numbers = [1, 2, 3, 4, 5];
$oddNumbers = array_filter($numbers, function($number) {
return $number % 2 !== 0;
});
使用 array_reduce() 将数组减少到单一的返回值。
$numbers = [1, 2, 3, 4, 5];
$sum = array_reduce($numbers, function($carry, $number) {
return $carry + $number;
}, 0);
使用 list() 和 each() 交替赋值数组的键和值。
$array = ['a' => 'apple', 'b' => 'banana'];
reset($array);
while (list($key, $value) = each($array)) {
echo "Key: $key; Value: $value\n";
}
使用 array_keys() 获取所有的键,或 array_values() 获取所有的值。
$array = ['a' => 'apple', 'b' => 'banana'];
$keys = array_keys($array);
// $keys = ['a', 'b']
$values = array_values($array);
// $values = ['apple', 'banana']
使用 array_flip() 交换数组的键和值。
$array = ['a' => 'apple', 'b' => 'banana'];
$flipped = array_flip($array);
// $flipped = ['apple' => 'a', 'banana' => 'b']
使用 array_walk() 对数组中的每个元素应用回调函数。
$numbers = [1, 2, 3, 4, 5];
array_walk($numbers, function(&$number, $key) {
$number = $number * $number;
});
使用 array_search() 查找键或值。
$array = ['a' => 'apple', 'b' => 'banana'];
$key = array_search('banana', $array);
// $key = 'b'
多维数组排序
$students = array(
array("name" => "Alice", "age" => 20),
array("name" => "Bob", "age" => 22),
array("name" => "Charlie", "age" => 18)
);
$age = array_column($students, 'age');
array_multisort($age, SORT_ASC, $students);
print_r($students);
array_walk()与 array_map() 的区别
array_walk() 主要用于对某个数组的迭代,相当于 foreach;
array_map() 主要是根据某个/某几个数组产生一个新的数组,常应用于递归效果!
1、array_map的用法是array_map(函数名,数组),而array_walk的用法是array_walk(数组,函数名);
2、aray_map里面的函数可以是自定义函数,也可以是php自带的函数,比如trim去除空格等。而array_walk里面的函数只能是自定义的函数
3、array_map不可以改变原函数的值,会获取到新的数组。array_walk是可以改变原函数的值的(加个引用)。aray_walk传入数组的key不能被修改!
4、array_map必须要有返回值,因为要填充数组。而aray_walk可以没有返回值,输出的话要在调用的函数中通过echo来输出。
5、array_map可以传多个数组作为函数参数,array_walk可以额外传一个参数作为回调函数第三个参数,该参数不是必须为数组的array_walk的
第一个参数数组的key和value作为第二个参数函数的前两个参数,第一个参数为value,第二个为key6、
7、array_map使用的回调函数只能获取到数组的元素
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下