我的脚本输出一个数组:
$person = array(
'name' => 'bob',
'age' => '27',
'sex' => 'male',
'weight' => 'fat'
// ...etc.
);
有时$person
中的键没有值 - 我想检查一下。但是,我没有给出关于$person['age']
或$person['weight']
的鸡块,我只想检查数组中的其他键是否为空:
foreach ($person as $key => $value) {
if ( $key != 'age' || $key != 'weight' ) {
if ( empty($value) ) {
echo 'you dun goofed';
}
}
}
为什么这不起作用?
答案 0 :(得分:3)
这匹配所有键:
if ( $key != 'age' || $key != 'weight' )
你可能想要:
if ( $key != 'age' && $key != 'weight' )
或类似的东西(扩展得更好......):
if (!in_array($key, array('age', 'weight')))
答案 1 :(得分:2)
您可能想要检查它们是否都是空的:
if ( $key != 'age' && $key != 'weight' );
<强>代码:强>
foreach ($person as $key => $value) {
if ( $key != 'age' && $key != 'weight' )
{
if ( empty($value) )
{
echo "$key field is empty<br>";
}
}
}
键盘:http://codepad.org/hEHVru4a
希望这有帮助!
答案 2 :(得分:2)
如果说密钥不是age
或不是weight
。如果这是正确的;
所以试试这个:
foreach ($person as $key => $value) {
if (!in_array($key, array('age','weight')) {
if ($value == FALSE) {
echo $key . ' is empty';
}
}
}
答案 3 :(得分:1)
您需要更改||和&amp;&amp ;.事实上,if语句对于年龄和体重都是正确的
答案 4 :(得分:1)
因为如果钥匙确实等于'age'
,它仍然不会等于重量,并且告诉你你已经愚弄了。反之亦然。试试这个:
if ( !in_array ($key, array('age','weight')) ) {