Php 使用两个数组中的相等值显示第三个数组中的值

Php 使用两个数组中的相等值显示第三个数组中的值,php,arrays,Php,Arrays,我要比较两个数组,然后收集相似的值以显示第三个数组中的值。 阵列1: $Global_Days = array("Monday", "Thursday", "Friday", "Sunday"); 阵列2: $Global_Day = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"); 阵列3: $Global_Dates = array("11-05-2015", "12-

我要比较两个数组,然后收集相似的值以显示第三个数组中的值。
阵列1:

$Global_Days = array("Monday", "Thursday", "Friday", "Sunday");
阵列2:

$Global_Day = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
阵列3:

$Global_Dates = array("11-05-2015", "12-05-2015", "13-05-2015", "14-05-2015", "15-05-2015", "16-05-2015", "17-05-2015");
因此,我基本上希望它显示与第一个数组中显示的日期相等的日期,因此本例将显示:

11-05-2015
14-05-2015
15-05-2015
17-05-2015
据我所见,array_intersect()大致上就是我要寻找的,但我所看到的示例非常混乱。

此处显示的数据与我打算使用的数据略有不同,但此功能正是我所需要的,因此提供获取日期的替代方案不会有任何帮助。

好吧,这里是我最终使用的,可能不是最佳的,但它获取了值,尝试根据Barmars答案进行编码,结果是:

$ans = array_intersect($Global_Days, $Global_Day);
$AKans = array_keys($ans); 
for ($z=0; $z < count($AKans); $z++ ){
$TAK = $AKans[$z];
echo $Global_Dates[$TAK];
echo "</br>";
}
$ans=array\u intersect($Global\u Days,$Global\u Day);
$AKans=数组\ U键($ans);
对于($z=0;$z”;
}

需要注意的事项。相交时,需要注意第一个数组,即要比较的数组。array_intersect在映射到$Global_日期的索引处提供$Global_Day中的所有值。然后,您可以将此交集的结果映射到$Global_Dates,通过比较从第一个交集检索的键来检索映射的值

这应该可以实现你的目标

$Global_Days = array("Monday", "Thursday", "Friday", "Sunday");
$Global_Day = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$Global_Dates = array("11-05-2015", "12-05-2015", "13-05-2015", "14-05-2015", "15-05-2015", "16-05-2015", "17-05-2015");

$keys = array_intersect($Global_Day, $Global_Days);
$result = array_intersect_key($Global_Dates, $keys);

试试看:

在前两个数组上使用
array\u intersect
。然后在
array3
中循环,从日期中获取日期名称,并在_array()中使用
,查看它是否在交叉点。对于
array_intersect
,您发现了什么让人困惑的地方?它只返回一个新数组,该数组包含输入数组中所有相同的元素。@Devon,手册中的注释部分是为业余爱好者准备的;)@OfirBaruch,我是在讽刺:)有时很难通过评论说出来。@Devon您可以折叠手册并使用它稳定桌上的短腿。尝试此代码,它似乎打印出$Global_Dates的前4个值,而不是通过数组指定的日期。不过很好,我已经得到了我需要的:)如何
array\u intersect\u key
找到一周中指定日期的日期?应该可以@Barmar,数组_intersect的结果,当您使用Global_Day作为第一个数组时,将返回一个映射到与Global_Day相同索引(这是映射中的键)的交点,但只返回Global_Days中的值。然后array_intersect_key只返回映射到这些特定索引的值,因为它们是上一个交集包含的键。我没有意识到
$Global_Dates
$Global_Day
直接对应。我认为这是一个随机的日期集合,我们需要从每个日期中获取一周中的哪一天来进行比较。@Barmar yea是的,但在我的php中不起作用,也许我在文档中命名了一些错误的内容。无论哪种方式,
array\u intersect\u key
看起来都非常有用,会记住它以便以后编码。