如何取消设置对象数组中所有对象的键?

How to unset a key in all objects in an array of objects?

我正在尝试取消设置对象数组中所有对象的键(基本上删除所有密码),这样做:

    foreach ( $data['users'] as $user) {
        unset($user['password']);
    }

但它似乎不会影响 'original' 数据...我如何通过引用(或任何使它像 'expected' 一样工作的方式来做到这一点——我的意思是, 键从原始数组中的所有对象中删除)?

尝试:

foreach ( $data['users'] as $key => $user) {
    unset($data['users'][$key]['password']);
}

或者

foreach ( $data['users'] as &$user) {
    unset($user['password']);
}

您可以像这样传递 $user 作为参考:

// check this --------------v
foreach ( $data['users'] as &$user) {
    unset($user['password']);
}

我的建议:

array_walk($data['users'], function(&$a) {unset($a['password']);});