分享一个函数,求bug,求改善^
程序员文章站
2022-06-16 13:50:17
...
分享一个函数,求bug,求改进^_^
我们phper经常会用到很多对数字或字符串的处理函数
遗憾的是大部分都不支持数组
灵光一闪,搞定它
觉得有用的大大们捧个场
顺便找些bug并给些改进的建议
------解决思路----------------------
進來支持下。
------解决思路----------------------
又想起了那句著名的话:重复造*的人呐
------解决思路----------------------
不是很明白函数的意思,不过还是进来看看
------解决思路----------------------
造*没有什么不好,选好材料和工艺才能事半功倍
我们phper经常会用到很多对数字或字符串的处理函数
遗憾的是大部分都不支持数组
灵光一闪,搞定它
觉得有用的大大们捧个场
顺便找些bug并给些改进的建议
/**
* 通过递归调用让函数支持多维数组 by wanderwind
* 建议其他函数调用来实现
* @param string $fn 调用函数名称
* @param array $param 参数数组,通常传入func_get_args()
* @param int $key 需要递归的参数键值
* @param boolean $check 是否需要检测函数合法性
* @return mixed 返回对$param[$key]的运行结果
*/
function fn2array($fn, $param, $key = 0, $check = true) {
//从外部调用时默认检测函数合法性,多维数组递归时忽略
if ($check && !function_exists($fn)) {
return false;
}
//提取执行目标,如果目标非数组可以直接执行
$content = $param[$key];
if (!is_array($content)) {
return call_user_func_array($fn, $param);
}
//如果目标是数组则递归执行
foreach ($content as &$val) {
$param[$key] = $val;
$val = fn2array($fn, $param, $key, false);
}
return $content;
}
function wstripslashes() {
return fn2array('stripslashes', func_get_args());
}
function wsubstr() {
$param = func_get_args();
$param[3] = isset($param[3]) ? $param[3] : 'utf-8';
return fn2array('mb_substr', $param, 0);
}
$a = array(
2 => '\"aaaaaaaaaaaaaaa\"',
array('\"啊啊啊啊啊啊啊啊啊啊啊啊啊\"'),
array(array(array('\"sss\dasf\dasfasdsad\"'))),
);
print_r(wstripslashes($a));
print_r(wsubstr($a, 2, 5));
------解决思路----------------------
進來支持下。
------解决思路----------------------
又想起了那句著名的话:重复造*的人呐
------解决思路----------------------
不是很明白函数的意思,不过还是进来看看
------解决思路----------------------
造*没有什么不好,选好材料和工艺才能事半功倍
相关文章
相关视频