多维php数组中的检查值

多维php数组中的检查值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想用我的数组中的数组检查我的数组值这是: 我使用这个代码,但它不起作用 if(in_array(167, $array) AND in_array(556, $array) ) { echo 'ok'; return; } 现在如何检查我的值?in_array()不适用于多维数组,您必须循环它并执行in_array()检查或将数组合并为单个数组,然后执行单个in_array()检查 方式1: 方式2:(合并) 编辑: <?php $array = array(arra

我想用我的数组中的数组检查我的数组值这是:

我使用这个代码,但它不起作用

 if(in_array(167, $array) AND in_array(556, $array)  ) {

 echo 'ok';
 return; 
}
现在如何检查我的值?

in_array()
不适用于多维数组,您必须循环它并执行
in_array()
检查或将数组合并为单个数组,然后执行单个
in_array()
检查

方式1: 方式2:(合并)
编辑:

<?php

$array = array(array(167),array(167),array(556));
$merged_arr = call_user_func_array('array_merge', $array);
$needle_array = array(167,556,223);

foreach($needle_array as $v)
{
    if(in_array($v,$merged_arr))
    {
        echo "Found";
    }
}
在这方面可能很有用
返回0<计数(
阵列滤波器(
$my_数组,
功能($a){
返回数组_key_存在('id',$a)&&a['id']==152;
}
)
);
或
$lookup_array=array();
foreach($arr形式的my_数组){
$lookup_数组[$arr['id']]=1;
}
现在,您可以非常快速地检查现有id,例如:
echo(isset($lookup_array[152])?“是”:“否”;
在阵列中循环

<?php
    foreach($array as $ar){
        if(in_array(167,$ar) && in_array(556,$ar)){
            echo "ok";
        }
    }
?>

您可以创建多维数组函数:

function inArrayMulti($needle, $haystack, $strict=false) {
    foreach( $haystack as $item ) {
        if( is_array($item) ) return inArrayMulti($needle, $item);
        else {
            if( $strict && $needle === $item) ) return true;
            else if( $needle == $item ) return true;
        }
    }

    return false;
}

为什么所有答案都在数组中使用和其他困难的结构?我们只需要找到两个数字,这很简单:

$array = array(array(165), array(167),array(167),array(556));

foreach($array as $key){
    foreach($key as $next){

    echo 167 == $next || 556 == $next ? '<p>Found<p></br>' : '';

    }

}
$array=array(array(165)、array(167)、array(167)、array(556));
foreach($数组作为$key){
foreach($key作为$next){
echo 167==$next | | 556==$next?“找到
”:”; } }
复制我的原始版本中有一个小错误。做了一个小改动,现在可以工作了。当检查两个值不起作用时,我想检查两个值167和556
<?php
    foreach($array as $ar){
        if(in_array(167,$ar) && in_array(556,$ar)){
            echo "ok";
        }
    }
?>
function inArrayMulti($needle, $haystack, $strict=false) {
    foreach( $haystack as $item ) {
        if( is_array($item) ) return inArrayMulti($needle, $item);
        else {
            if( $strict && $needle === $item) ) return true;
            else if( $needle == $item ) return true;
        }
    }

    return false;
}
$array = array(array(165), array(167),array(167),array(556));

foreach($array as $key){
    foreach($key as $next){

    echo 167 == $next || 556 == $next ? '<p>Found<p></br>' : '';

    }

}