在PHP中清理多维数组

时间:2016-04-06 23:48:21

标签: php

写了这个函数来清理数组和LEAVE 0,null& false为有效值。

function sanitize_array($array = array()) {
    if (is_array($array)) {
        $filtered_array = array_filter($array, create_function('$a', 'return trim($a)!=="";'));
        $filtered_and_trimmed_array = array();
        foreach ($filtered_array as $k => $v) {
            if (!is_array($v) && !is_object($v)) {
                $filtered_and_trimmed_array[$k] = htmlspecialchars(trim($v));
            }
            if (is_array($v)) {
                $filtered_and_trimmed_array[$k] = $this->sanitize_array($v);
            }
        }
        return $filtered_and_trimmed_array;
    } else {
        return false;
    }
}

它给了我以下错误:

  

g:trim()期望参数1为字符串,数组在/home/imgimportsinc/public_html/img_scripts_library/img_functions.php(328)中给出:第1行的运行时创建函数

     

警告:trim()期望参数1为字符串,数组在/home/imgimportsinc/public_html/img_scripts_library/img_functions.php(328)中给出:第1行的运行时创建函数

1 个答案:

答案 0 :(得分:1)

您只需要在修剪前检查要评估的值是否为字符串即可。

$filtered_array = array_filter($array, function($v) {
    return !is_string($v) || (is_string($v) && trim($v) !== "");
});