php几个数组的奇淫巧计

使用 array_map() 应用函数到数组的每个元素。

$numbers = [1, 2, 3, 4, 5];
$squares = array_map(function($number) {
    return $number * $number;
}, $numbers);
// $squares = [1, 4, 9, 16, 25]

使用 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;
});
// $oddNumbers = [1, 3, 5]

使用 array_reduce() 将数组减少到单一的返回值。

$numbers = [1, 2, 3, 4, 5];
$sum = array_reduce($numbers, function($carry, $number) {
    return $carry + $number;
}, 0);
// $sum = 15

使用 list() 和 each() 交替赋值数组的键和值。

$array = ['a' => 'apple', 'b' => 'banana'];
reset($array); // 确保数组指针位于第一个元素
while (list($key, $value) = each($array)) {
    echo "Key: $key; Value: $value\n";
}
// 输出:
// Key: a; Value: apple
// Key: b; Value: banana

使用 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;
});
// $numbers = [1, 4, 9, 16, 25]

使用 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() 主要用于对某个数组的迭代,相当于 foreacharray_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使用的回调函数只能获取到数组的元素
posted @   朝阳1  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示