Php 根据数组匹配多个值
我的问题是: 我有一个名为$ownerArray的数组,另一个数组需要对其进行检查,如果两个数组中都存在一个键,则显示匹配键的值$ownerArray由数据库填充,所以我不能只在if语句中编写ir语句 $ownerArray将如下所示: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 = 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这是最直接、最容易实现的答案。你知道你很好