Php 组合值(';test';,';value';)的数组中

Php 组合值(';test';,';value';)的数组中,php,arrays,Php,Arrays,我正在尝试将in_数组或类似的东西用于关联数组或更复杂的数组 这是正常的in_数组 in_array('test', array('test', 'exists')); //true in_array('test', array('not', 'exists')); // false 我试图搜索的是一对,比如“test”和“value”的组合。我可以根据需要将要搜索的组合设置为数组('test','value')或'test'=>'value'。但是,如果要搜索的数组是 array('test

我正在尝试将in_数组或类似的东西用于关联数组或更复杂的数组

这是正常的in_数组

in_array('test', array('test', 'exists')); //true
in_array('test', array('not', 'exists')); // false
我试图搜索的是一对,比如“test”和“value”的组合。我可以根据需要将要搜索的组合设置为
数组('test','value')
'test'=>'value'
。但是,如果要搜索的数组是

array('test'=>'value', 'exists'=>'here');
or
array( array('test','value'), array('exists'=>'here') );

如果要查看是否存在值为“value”的键“test”,请尝试以下操作:

<?php
$arr = array('key' => 'value', 'key2' => 'value');
if(array_key_exists('key',$arr) && $arr['key'] == 'value'))
     echo "It is there!";
else
     echo "It isn't there!";
?>

如果我理解正确,您正在寻找一个名为

它接受一个混合值,因此您甚至可以搜索对象-我还没有完全尝试过,但它应该适用于您的用例:

if (array_search(array('test','value'), array(array('test','value'),array('nottest','notvalue'))) !== false) {
    // item found...
}
好的

但是,我认为这种方法最有用: 如果只需要确定某个键/值对是否位于数组中,最简单的方法如下:

<?php
if (isset($arr['key']) && $arr['key'] == 'value') { 
    // we have a match...
}
?>


如果您需要在更复杂的模式中查找某些内容,那么不可避免地会创建一个更大的循环。

分开,并在数组()中使用


你的意思是你需要递归搜索(在任何深度)?
(a&b)| | c
是可以理解的,以避免混淆,但是
(c)
是完全没有必要的。如果设置($arr['key'])或存在('key',$arr);--我从未发现数组\u键\u存在有用。。
<?php
if (isset($arr['key']) && $arr['key'] == 'value') { 
    // we have a match...
}
?>
$myArray = array('test'=>'value', 'exists'=>'here');
array_keys($myArray)
array_values($myArray)