1

有没有一种明智的方法可以从我指定的数组 APART 中删除所有字段?

我在想一些array_diff可以工作的东西,但我只想列出我想允许的字段键,然后说“删除其他所有内容”。这样做的最佳方法是什么?

非常感谢

4

2 回答 2

6

如果复制数组没问题, array_intersect_key()应该可以工作。

$arr = array(
    'A' => 'alpha',
    'B' => 'bravo',
    'C' => 'charlie',
    'D' => 'delta'
);

$allowedKeys = array('B', 'C');

print_r(array_intersect_key($arr, array_flip($allowedKeys)));

# Array
# (
#    [B] => bravo
#    [C] => charlie
# )

否则,您可以使用 foreach 循环:

foreach ($arr as $key => $value) {
    if (!in_array($key, $allowedKeys)) {
        unset($arr[$key]);
    }
}
于 2013-01-04T10:41:21.653 回答
0

试试下面的代码..这可能对你有用

foreach($array as $key=>&$value) {
        if($key!='yourx') {
            unset($array[$key])
        }
    }
于 2013-01-04T10:38:07.790 回答