跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

PHP 数组函数在业务过滤中的实践

PHP 数组函数是业务数据过滤中高效、简洁的利器,关键在于选对函数、组合使用、避免副作用。 用 array_filter() 做条件筛选 这是最常用的过滤函数,适合按规则剔除不满足条件的元素。它默认保留返回 true 的项,支持回调函数或内置常量(如 ARRAY_FILTER_USE_BOTH 可同时访问键和值)。 过滤非空且长度大于2的用户名:
array_filter($users, fn($name) => is_string($name) && strlen($name) > 2)
保留订单金额大于0的记录:
array_filter($orders, fn($order) => $order['amount'] > 0)
注意:默认会重置键名,如需保留原键,加第三个参数 ARRAY_FILTER_USE_KEY 或手动用 array_values() 重索引 用 array_map() 统一清洗字段 适合对每个元素做标准化处理,比如去空格、转小写、脱敏、类型转换,为后续过滤打基础。 统一清理用户邮箱并转小写:
array_map('trim', array_map('strtolower', $emails))
将字符串金额转为 float 并过滤非法值:
array_filter(array_map(fn($v) => is_numeric($v) ? (float)$v : null, $amounts))
慎用:若映射后产生 null/false,需配合 array_filter() 二次清理 用 array_intersect_key() 和 array_diff_key() 控制字段白/黑名单 在 API 入参校验、数据库写入前字段裁剪时非常实用,不依赖值内容,只看键名是否在允许/禁止列表中。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”; 只保留允许入库的字段:
array_intersect_key($input, array_flip(['name', 'email', 'status']))
剔除敏感字段(如 password、token):
array_diff_key($user, ['password' => '', 'token' => ''])
比 foreach + unset 更安全,不会因键不存在报 notice,也避免遗漏嵌套结构 组合使用提升健壮性:过滤 + 验证 + 默认值 真实业务中很少单用一个函数。常见模式是先清洗、再过滤、最后补缺,形成“管道式”处理流。 示例:处理分页参数:
$page = (int)array_filter([$input['page'] ?? 1], 'is_numeric')[0] ?? 1;
更清晰写法: 用 array_replace() 补默认值 → array_map() 类型转换 → array_filter() 排除非预期值 重要提醒:所有来自用户的数组($_GET、$_POST、JSON 解析结果)都应视为不可信,过滤不是可选项,而是必经步骤

相关文章