Php 根据数组匹配多个值

Php 根据数组匹配多个值,php,arrays,if-statement,foreach,Php,Arrays,If Statement,Foreach,我的问题是: 我有一个名为$ownerArray的数组,另一个数组需要对其进行检查,如果两个数组中都存在一个键,则显示匹配键的值$ownerArray由数据库填充,所以我不能只在if语句中编写ir语句 $ownerArray将如下所示: $ownerArray = array(0 =>'Name0',1 =>'Name1',2 =>'Name2',3 =>'Name3'); $Users = '1,2' 然后,我有另一个名为$Users的数组,它根据用户选择的内容具有

我的问题是:

我有一个名为$ownerArray的数组,另一个数组需要对其进行检查,如果两个数组中都存在一个键,则显示匹配键的值$ownerArray由数据库填充,所以我不能只在if语句中编写ir语句

$ownerArray将如下所示:

$ownerArray = array(0 =>'Name0',1 =>'Name1',2 =>'Name2',3 =>'Name3');
$Users = '1,2'
然后,我有另一个名为$Users的数组,它根据用户选择的内容具有不同数量的值,因此$Users可以如下所示:

$ownerArray = array(0 =>'Name0',1 =>'Name1',2 =>'Name2',3 =>'Name3');
$Users = '1,2'
或者像这样:

$Users = '1,3'
$Users是不同的

但是我需要$ownerray的$value来显示$Users的任何值整数是否与$ownerray的任何$key匹配

例如:

foreach($ownerArray as $key => $value) 
            { 
                if(in_array($key,array($Users)))
                {
                    print $value; 
                } 
            }
此方法在第一次匹配时停止,并显示正确的名称。如果有更多值匹配,则循环不会继续打印

我要找的是,如果$Users='1,3'我的for循环将从$ownerArray打印Name1和Name3

谢谢你的帮助


ps我知道我可以使用if($key==1 | |$key==2),但这对这种情况不起作用

<?php

$ownerArray = array(0 =>'Name0',1 =>'Name1',2 =>'Name2',3 =>'Name3');
$users = explode(',','1,2');

if(count($users) > 0){
    foreach($users as $user){
        if($key = array_search($user,$ownerArray)){
            echo $key;
        }
    }
}


?>

只需颠倒逻辑即可。实际上,您希望在用户之间循环,并打印所有者数组中存在的内容,而不是相反。(如果此代码有点不正确,则表示歉意,但您明白这一点。)


我一直在做这种事+1
$merged=array\u flip(array\u intersect(array\u flip($owner),explode(',',$user))无间隔FTWLMOA这是最直接、最容易实现的答案。你知道你很好