本文介绍了删除基于密钥从多维数组元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何从一个给定的一个关键多维数组删除元素?
我希望这是贪婪的,这样它删除阵列中的匹配我传递的按键时,我有这到目前为止,我可以遍历多维数组的所有元素,但我不能没有设置关键我需要,因为我没有对它的引用!
函数traverseArray($数组$键)
{
的foreach($数组$关键=> $值)
{
如果(is_array($值))
{
traverseArray($值); }其他{ 如果(in_array($键,$键))
{
//未设置(发生的事情吗?) } }
}}
解决方案
以下code ++工程(且不去precated的东西用),只是测试它:
函数traverseArray(安培; $数组$键){
的foreach($数组$关键= GT;&安培; $值){
如果(is_array($值)){
traverseArray(价值$,$键);
}其他{
如果(in_array($键,$键)){
未设置($数组[$关键]);
}
}
}
}
How can I delete an element from a multi-dimensional array given a key?
I am hoping for this to be greedy so that it deletes all elements in an array that match the keys I pass in. I have this so far where I can traverse a multi-dimensional array but I can't unset the key I need to because I don't have a reference to it!
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?)
}
}
}
}
解决方案
The following code works (and doesn't use deprecated stuff), just tested it:
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]);
}
}
}
}
这篇关于删除基于密钥从多维数组元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!