我有两个要比较的数组,然后收集类似的值以便显示来自第三个数组的值。
数组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()大致是我正在寻找的,但我看到它的例子非常令人困惑。
这里显示的数据与我打算使用的有点不同,但这个功能是我需要的,所以给出获取日期的替代方案将无济于事
答案 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);
答案 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>";
}