个人常用函数2:对指定数组的指定字段进行自定义处理

2020-04-23 17:24:58   个人常用封装函数

  个人常用函数  

多维嵌套数组,自定义字段指定条件下执行自定义处理

  1. function recursiveCallback(array &$array, callable $callable_condition, callable $callable, $field)
  2. {
  3. foreach ($array as $k => $value) {
  4. if ($k == $field && eval('return '.call_user_func($callable_condition, $value).';')) {
  5. $array = call_user_func($callable, $array, $k);
  6. }
  7. if (isset($array[$k]) && is_array($array[$k])) {
  8. $array[$k] = recursiveCallback($array[$k], $callable_condition, $callable, $field);
  9. }
  10. }
  11. return $array;
  12. }

调用方法

  1. recursiveCallback($array, function ($value) {
  2. return is_array($value) && !$value;
  3. }, function ($v, $key) {
  4. unset($v[$key]);
  5. return $v;
  6. }, 'children');