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

时间:2010-11-23 13:18:45

标签: php arrays

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

我正在尝试删除值为false的所有键。

所以如果数组是

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

我想以

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

我该怎么做?

4 个答案:

答案 0 :(得分:32)

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

array_filter()

答案 1 :(得分:0)

请参阅http://www.php.net/manual/en/function.unset.php,将其与foreach相结合,即可获得所需内容。

另见http://www.php.net/manual/en/function.array-filter.php

答案 2 :(得分:0)

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

只是假的,所以我希望你知道我的意思。

答案 3 :(得分:0)

Arraydecleration(使用PHP 5.4数组速记):

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

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

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

打印结果:

print_r($arr);

最后一行打印“Array([key1] =&gt; 1 [key4] =&gt; 1)”。