在实际工作,我们经常会遇到对多维数组的处理,一般就会采用多重循环的方式,直到数组的最里面那一层或者使用递归来处理,在php中可以使用array_walk_recursive来灵活处理
/**
* @desc 处理多维数组
* @param array $data 待处理数据
* @param array $field 处理字段数组
*/
public static function dealSystemLang($data, $field)
{
$keys = [];
//取满足条件的数据
array_walk_recursive($data, function($value, $key) use ($field, &$keys) {
if(in_array($key, $field, true)) {
$keys[] = $value;
}
}, $keys);
if(empty($keys)){
return $data;
}
//处理满足条件的数据
array_walk_recursive($data, function(&$value, $key) use ($field){
if(in_array($key, $field, true)) {
$value = ucfirst($value);
}
});
return $data;
}
在实际开发中能使用编程语言内置的函数处理就尽量使用,可以使代码更简洁,运行更快