写了这个函数来清理数组和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行的运行时创建函数
答案 0 :(得分:1)
您只需要在修剪前检查要评估的值是否为字符串即可。
$filtered_array = array_filter($array, function($v) {
return !is_string($v) || (is_string($v) && trim($v) !== "");
});