我有一个包含大量true
/false
值的关联数组。
我想要删除所有值为false
的键。
如果数组是这样的:
array(
'key1' => true,
'key2' => false,
'key3' => false,
'key4' => true
);
我想最终得到
array(
'key1' => true,
'key4' => true
);
我该如何做到这一点?
$array = array_filter(array(
'key1' => true,
'key2' => false,
'key3' => false,
'key4' => true
));
看一下http://www.php.net/manual/en/function.unset.php,再结合foreach循环,你就可以得到你需要的东西了。
另外,也可以看一下http://www.php.net/manual/en/function.array-filter.php
for (x=0; x < array.count; x++)
{
if (key.value == false)
{
unset($arr[x]);
}
}
只是伪代码,希望你明白我的意思。
数组声明(使用 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 )"。
""
、0
、0.0
、null
和 []
。这可能是有意的,但不够清楚。我看到短语“可选择使用 ===
”,但这不是一个选项,而是一种不同的行为,因此会产生不同的结果。 - KingCrunch