如何在PHP中循环遍历多维数组并按名称递归删除键?

如何在PHP中循环遍历多维数组并按名称递归删除键?,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我试图通过一个多维数组进行循环,代码发布在下面。我想要一个可以传递数组的函数和一个可以删除的键。它类似于函数removeItemFromMArray($YourArray,$RemoveKeyName) 我想删除ID并返回一个新数组,其中包含除ID之外的所有内容。您有一个对象数组 function removeItemFromMArray($YourArray, $RemoveKeyNamed) { foreach ($YourArray as $object) { un

我试图通过一个多维数组进行循环,代码发布在下面。我想要一个可以传递数组的函数和一个可以删除的键。它类似于函数removeItemFromMArray($YourArray,$RemoveKeyName)


我想删除ID并返回一个新数组,其中包含除ID之外的所有内容。

您有一个对象数组

function removeItemFromMArray($YourArray, $RemoveKeyNamed) {
    foreach ($YourArray as $object) {
        unset($object->$RemoveKeyNamed);
    }
    return $YourArray;
}
$products = removeItemFromMArray($myArray->products, 'id');


id是对象的一部分而不是数组为了进一步说明Ray的注释,所示示例中没有多维数组;它是一个具有
products
属性的对象,后者是
stdClass
对象的(一维、关联)数组。我想确定一下,但它是多维的。我们几乎是一样的。您需要接受
$YourArray
作为参考。谢谢,@AbraCadaverless。我更新了答案too@cornelb不需要通过引用使用foreach,也不需要用大括号包装variable属性。为您编辑。
function removeItemFromMArray($YourArray, $RemoveKeyNamed) {
    foreach ($YourArray as $object) {
        unset($object->$RemoveKeyNamed);
    }
    return $YourArray;
}
$products = removeItemFromMArray($myArray->products, 'id');
function removeItemFromMArray(&$YourArray, $RemoveKeyNamed) {
    foreach ($YourArray as $object) {
        unset($object->$RemoveKeyNamed);
    }
}
removeItemFromMArray($myArray->products, 'id');