PHP数组函数高级应用:5个实用场景提升开发效率
PHP提供了丰富的数组处理函数,合理使用可以大幅提升开发效率。本文将介绍5个实际开发中高频使用的数组函数应用场景。
1. 使用array_map批量处理数据
批量格式化用户输入的电话号码:
// 添加国际区号并格式化显示
$formattedPhones = array_map(function($phone) {
return ‘+86 ‘ . substr($phone, 0, 3) . ‘ ‘ . substr($phone, 3, 4) . ‘ ‘ . substr($phone, 7);
}, $phones);
print_r($formattedPhones);
/* 输出:
Array (
[0] => +86 138 0013 8000
[1] => +86 139 1234 5678
[2] => +86 158 0000 1111
)
*/
2. array_reduce实现数据聚合
计算订单总金额:
[‘price’ => 100, ‘quantity’ => 2],
[‘price’ => 50, ‘quantity’ => 3],
[‘price’ => 200, ‘quantity’ => 1]
];
$total = array_reduce($orders, function($carry, $item) {
return $carry + ($item[‘price’] * $item[‘quantity’]);
}, 0);
echo $total; // 输出:450
3. array_column快速提取对象数组属性
从用户数组中提取ID列表:
[‘id’ => 1, ‘name’ => ‘张三’],
[‘id’ => 2, ‘name’ => ‘李四’],
[‘id’ => 3, ‘name’ => ‘王五’]
];
$userIds = array_column($users, ‘id’);
print_r($userIds); // 输出:Array ([0] => 1 [1] => 2 [2] => 3)
4. array_filter实现条件筛选
筛选出价格大于100的商品:
[‘name’ => ‘手机’, ‘price’ => 3999],
[‘name’ => ‘耳机’, ‘price’ => 199],
[‘name’ => ‘电脑’, ‘price’ => 5999]
];
$expensiveProducts = array_filter($products, function($product) {
return $product[‘price’] > 100;
});
print_r($expensiveProducts);
5. 综合案例:数据转换管道
将原始数据转换为前端需要的格式:
[‘id’ => 1, ‘title’ => ‘商品A’, ‘price’ => ‘100.00’, ‘stock’ => 10],
[‘id’ => 2, ‘title’ => ‘商品B’, ‘price’ => ‘200.50’, ‘stock’ => 0],
[‘id’ => 3, ‘title’ => ‘商品C’, ‘price’ => ‘300.00’, ‘stock’ => 5]
];
$processedData = array_map(function($item) {
return [
‘productId’ => $item[‘id’],
‘name’ => $item[‘title’],
‘price’ => floatval($item[‘price’]),
‘available’ => $item[‘stock’] > 0
];
}, array_filter($rawData, function($item) {
return $item[‘price’] > 150;
}));
print_r($processedData);
合理组合使用PHP数组函数可以写出更简洁高效的代码,减少循环和临时变量的使用,提升代码可读性和维护性。