基于键从多维数组中删除元素

Abs*_*Abs 9 php arrays

如何在给定键的情况下从多维数组中删除元素?

我希望这是贪婪的,这样它就会删除数组中与我传入的键相匹配的所有元素.到目前为止,我已经可以遍历多维数组,但是我无法取消我需要的键.因为我没有参考它!

function traverseArray($array, $keys)
{ 
    foreach($array as $key=>$value)
    { 
        if(is_array($value))
        { 
            traverseArray($value); 

        } else {

            if(in_array($key, $keys))
           {                    
                //unset(what goes here?) 

            }

        } 
    }

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*lik 8

以下代码有效(并且不使用已弃用的东西),只是测试了它:

function traverseArray(&$array, $keys) { 
  foreach ($array as $key => &$value) { 
    if (is_array($value)) { 
      traverseArray($value, $keys); 
    } else {
      if (in_array($key, $keys)){
        unset($array[$key]);
      }
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)