首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 遞歸清除多維數組所有字符串首尾空格

     編輯:PHP 綜合知識

痛點

trim() 僅能處理單個字符串,面對多維關聯數組時無法直接應用。需遍歷遞歸處理每個元素。

優雅解法:array_map + 遞歸

<?php
function TrimArray($input) {
    if (!is_array($input)) {
        return trim($input); // 基線條件:字符串直接 trim
    }
    // 遞歸映射:對數組每個值應用自身
    return array_map('TrimArray', $input);
}

// 測試數據
$dirty = [
    'Key1' => ' Value 1 ',
    'Key2' => '   Value 2   ',
    'Key3' => [
        '  Child Item 1 ',
        '  Child Item 2'
    ]
];

$clean = TrimArray($dirty);
var_dump($clean);
/* 輸出:
array(3) {
  ["Key1"]=> string(7) "Value 1"
  ["Key2"]=> string(7) "Value 2"
  ["Key3"]=> array(2) {
    [0]=> string(18) "Child Item 1"
    [1]=> string(18) "Child Item 2"
  }
}
*/
?>

舊版寫法對比(while + each)

<?php
// 不推薦:each() 在 PHP 7.2+ 棄用,PHP 8.0 移除
function TrimArray_old($arr) {
    if (!is_array($arr)) return $arr;
    while (list($key, $value) = each($arr)) {
        if (is_array($value)) {
            $arr[$key] = TrimArray_old($value);
        } else {
            $arr[$key] = trim($value);
        }
    }
    return $arr;
}
?>

優勢總結

  • 代碼簡潔,僅 6 行核心邏輯。
  • 利用 array_map 內建遍歷,性能優於手動循環。
  • 完美支持任意深度嵌套數組,保留鍵名結構。
  • 兼容 PHP 所有現代版本(5.3+)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved