在2个数组中使用相等的值来显示第三个数组的值

时间:2015-05-12 03:02:40

标签: 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-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()大致是我正在寻找的,但我看到它的例子非常令人困惑。
这里显示的数据与我打算使用的有点不同,但这个功能是我需要的,所以给出获取日期的替代方案将无济于事

2 个答案:

答案 0 :(得分:1)

注意事项。相交时,您需要注意第一个数组,即要比较的数组。 array_intersect为映射到$ Global_Dates的索引提供$ 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);

尝试一下:http://www.tehplayground.com/#zkyzV0dwH

答案 1 :(得分:0)

嗯,继续我最终使用的内容,可能不是最佳的,但它获得了值,试图根据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>";
}