在php中清理多维数组
编写此函数是为了清理数组并将0、null和false保留为有效值在php中清理多维数组,php,Php,编写此函数是为了清理数组并将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 = a
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行创建的函数中给出
在修剪之前,只需检查要计算的值是否为字符串
$filtered_array = array_filter($array, function($v) {
return !is_string($v) || (is_string($v) && trim($v) !== "");
});
错误日志已足够清晰
trim()
需要的是字符串而不是数组。顺便问一下,谁在使用create\u函数
?只要在数组为true时使用closure,就可以尝试递归$v…..旁注:trim(0)==“
是真的