PHP:如何在in_array()中检查错误键组?

时间:2014-10-01 17:39:35

标签: php arrays

我有一个要检查的动作。如果在$ Actions中设置为false,我需要做的事情。

$Actions['edit'] => true;
$Actions['delete'] => false;
$Actions['foo'] => true;
$Actions['bar'] => false;

$actionToCheck = 'delete';

尝试1:

$falseActions = '???';

if ( in_array( $actionToCheck, $falseActions ) ) {
    //do stuff
}

尝试2:

if ( in_array( $actionToCheck, $Actions, false ) ) {
    //do stuff
}

3 个答案:

答案 0 :(得分:1)

如果我得到你想做的事......那怎么样:

foreach ($Actions AS $cSetting => $bValue) {
    if ($bValue === false) {
        print($cSetting . ' is false');
    }
}

这将允许您针对每个错误的设置执行有针对性的操作。

答案 1 :(得分:0)

我希望我能正确理解你的问题,这有点模糊。

in_array()函数检查值是否在数组中。您似乎正在关注的是密钥是否存在。您需要使用array_key_exists()功能。然后,一旦确认,就可以继续使用其余代码。

$Actions['edit'] => true;
$Actions['delete'] => false;

$actionToCheck = 'delete';

if(array_key_exists($actionToCheck, $Actions)) {
    //do stuff with the $Actions['delete'] value (which is 'false')
}

请参阅PHP documentation

中的详情

答案 2 :(得分:0)

编辑:我注意到你的例子中有多个错误值。所以:

<?php
if ($false_keys = array_keys($Actions, false, true)) {
    foreach ($false_keys as $action) {
        //do stuff with $action
    }
}

你的问题很不清楚......