我试图从数组中删除两个键值对,我使用下面的代码来分离出我不想要的键.我不明白为什么它不等于正确.如果我删除OR(|| $key != 6)它将正常工作,但我希望有一个if语句.谁能解释我做错了什么?谢谢.
$test = array( '1' => '21', '2' => '22', '3' => '23', '4' => '24', '5' => '25', '6' => '26' );
foreach( $test as $key => $value ) {
if( $key != 4 || $key != 6 ) {
$values[$key] = $value;
echo '<br />';
print_r( $values );
}
}
// Output
Array ( [1] => 21 [2] => 22 [3] => 23 [4] => 24 [5] => 25 [6] => 26 )
Run Code Online (Sandbox Code Playgroud)
Jon*_*nah 19
这是最好的方法:
$values = $test;
unset($values[4], $values[6]);
Run Code Online (Sandbox Code Playgroud)
假设您需要一个新阵列$values.否则直接从中删除它们$tests.
参考这里:http://php.net/unset
以下仅适用于您自己的布尔逻辑教育,这不是您应该这样做的方式.
你需要||改为&&.你不希望任何的结果.使用逻辑OR,所有这些都将通过因为4 != 6和6 != 4.如果它命中4,它将运行如下:
你不等于4吗?哦,你是等于4?好吧,我能做的最好的就是让你,但如果你不等于6.
如果你改成它&&,它将运行如下:
你是4号还是6号以外的号码?没有?对不起朋友.