PHP数组指定字段字符串首尾空格去除:保留结构与内部空格
解决方案
要处理嵌套数组中指定字段的首尾空格,同时保留原结构和字符串内部空格,可以通过递归遍历数组实现,针对header、parameter、value三个字段执行trim()操作。
步骤1:编写递归处理函数
这个函数会遍历数组的每一层,自动处理嵌套结构里的目标字段:
function trimTargetFields(&$array) { foreach ($array as $key => &$value) { if (is_array($value)) { // 递归处理嵌套的子数组 trimTargetFields($value); } elseif (in_array($key, ['header', 'parameter', 'value']) && is_string($value)) { // 仅对目标字段的字符串值去除首尾空格 $value = trim($value); } } unset($value); // 释放引用,避免后续变量污染 }
步骤2:修改现有业务代码
在对tables数组编码之前,先调用上面的函数处理目标字段:
$data = json_decode($json, true); foreach($data as $index => $value){ $tables = $value["tables"]; // 处理指定字段的首尾空格 trimTargetFields($tables); // 保持原结构输出JSON echo json_encode($tables, JSON_UNESCAPED_UNICODE); }
效果说明
- 处理后示例中的
"header":" Me chanics "会变为"header":"Me chanics",内部空格完全保留 - 所有嵌套层级的
header、parameter、value字段都会被统一处理 - 原数组的结构、其他字段的内容完全不受影响
内容的提问来源于stack exchange,提问作者user19364233
相关产品推荐
相关产品推荐

