如何检查foreach循环中的任何键是否存在于另一个数组的值中?
数组1我想检查
$array1 = array(
'a' => '1',
'b' => '2',
'c' => '3',
);
数组1应与阵列1进行比较
$reserved_words = array('b');
我想要检查条件检查是否为TRUE以应用特定操作。我的代码现在看起来像这样:
foreach( $array1 as $key => $value )
{
// Check for reserved words
if( in_array($key, $reserved_words)
{
// Some action
}
// Code...
}
我找不到与array_key_exists
类似的任何内容,可能是我遗漏了一些东西。
我想通过这样做来检查它:
if( array_value_exists($value, $reserved_words) )
但问题是没有array_value_exists
功能可用。
答案 0 :(得分:2)
您首先忘记了foreach标题中的as
关键字,并且在if语句中错过了)
。
所以这应该有效:
<?php
$array1 = array(
'a' => '1',
'b' => '2',
'c' => '3',
);
$reserved_words = array('b');
foreach( $array1 as $key => $value ) {
//^^Here 'as' keyword
if( in_array($key, $reserved_words)) {
echo $key; //^Here ')' closed if statement
}
}
?>
答案 1 :(得分:0)
$array1 = array(
'a' => '1',
'b' => '2',
'c' => '3',
);
$reserved_words = array('b');
>>> array_intersect_key($array1, array_flip($reserved_words));
=> [
"b" => "2"
]
答案 2 :(得分:0)
您缺少'as'关键字。请输入如下代码
foreach($array1 as $key => $val){
if(in_array($key, $reserved_words)){
echo "yes";
} else {
echo "no";
}
}