使用 PHP 的 foreach 将逻辑仅应用于数组中的某些键

izo*_*ate 5 php arrays foreach loops

我的脚本输出一个数组:

$person = array(
    'name' => 'bob',
    'age' => '27',
    'sex' => 'male',
    'weight' => 'fat'
    // ...etc.
);
Run Code Online (Sandbox Code Playgroud)

有时键中$person没有值 - 我想检查一下。但是,我没有给出关于$person['age']or的鸡块$person['weight'],我只想检查数组中的其他键是否为空:

foreach ($person as $key => $value) {
    if ( $key != 'age' || $key != 'weight' ) {
        if ( empty($value) ) {
            echo 'you dun goofed';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

jer*_*oen 4

这匹配所有键:

if ( $key != 'age' || $key != 'weight' )
Run Code Online (Sandbox Code Playgroud)

您可能想要:

if ( $key != 'age' && $key != 'weight' )
Run Code Online (Sandbox Code Playgroud)

或类似的东西(规模更好一点......):

if (!in_array($key, array('age', 'weight')))
Run Code Online (Sandbox Code Playgroud)