在PHP中从数组中删除值为false的键

23

我有一个包含大量true/false值的关联数组。

我想要删除所有值为false的键。

如果数组是这样的:

array(
  'key1' => true,
  'key2' => false,
  'key3' => false,
  'key4' => true
);

我想最终得到

array(
  'key1' => true,
  'key4' => true
);

我该如何做到这一点?

4个回答

42
$array = array_filter(array(
    'key1' => true,
    'key2' => false,
    'key3' => false,
    'key4' => true
));

array_filter()


3
希望有一代程序员首先参考手册。 - Kevinleary.net

0

0
for (x=0; x < array.count; x++)
{
     if (key.value == false)
     {
          unset($arr[x]);
     }
}

只是伪代码,希望你明白我的意思。


那似乎是 Java(或其他什么),不是 PHP。 - KingCrunch
不知道。就像我说的,这只是伪代码。 - Nick
没问题,抱歉让你感到困惑。:P - Nick

-1

数组声明(使用 PHP 5.4 数组简写):

$arr = ['key1' => TRUE, 'key2' => FALSE, 'key3' => FALSE, 'key4' => TRUE];

然后从数组中删除所有值为FALSE的键和值(可选择使用严格比较“===”):

foreach ($arr as $key => $value)
    if ($value == FALSE)
        unset($arr[$key]);

打印结果:

print_r($arr);

这行代码会输出 "Array ( [key1] => 1 [key4] => 1 )"。


火车晚点了一会儿,但这将删除 ""00.0null[]。这可能是有意的,但不够清楚。我看到短语“可选择使用 ===”,但这不是一个选项,而是一种不同的行为,因此会产生不同的结果。 - KingCrunch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接