Paste Search Dynamic
array walk recursive delete
  1. <?php
  2.  
  3. function array_walk_recursive_delete(array &$array, callable $callback, $userdata = null)
  4. {
  5.     foreach ($array as $key => &$value) {
  6.         if (is_array($value)) {
  7.             $value = array_walk_recursive_delete($value, $callback, $userdata);
  8.         }
  9.         if ($callback($value, $key, $userdata)) {
  10.             unset($array[$key]);
  11.         }
  12.     }
  13.  
  14.     return $array;
  15. }
  16.  
  17. $array = [
  18.             'a'=> 'a',
  19.             'b'=> null,
  20.             'c' => [
  21.                 'a' => null,
  22.                 'b' => '323b',
  23.             ],
  24.             'd' => [
  25.                 'a' => null,
  26.                 '2323' => 'asas'
  27.             ]
  28.         ];
  29.  
  30.  $result = array_walk_recursive_delete($array, function ($value, $key) {
  31.             if (is_array($value)) {
  32.                 return true;
  33.             }
  34.             return ($value === null);
  35.         });
  36.  
  37.         print_r($result);
  38.  
  39. ?>
  40.  
  41.  
Parsed in 0.028 seconds