如何从PHP中的现有日期数组创建新的日期数组?

php

46 观看

3回复

42 作者的声誉

我有2个日期数组。我需要最有效的方法来构建第三个日期数组,该数组仅包含与2个日期数组相同的日期。

例如:

List of Dates #1:
2017-01-01
2017-01-02
2017-01-03
2017-02-01
2017-02-02
2017-09-09

List of Dates #2:
2017-01-01
2017-02-01
2017-03-01
2017-04-01

So array 3 should be:
2017-01-01
2017-02-01
作者: Jeff Sayers 的来源 发布者: 2017 年 9 月 15 日

回应 3


2

4522 作者的声誉

决定

您正在寻找array_intersect

工作演示https : //eval.in/862254

$array1 = array("2017-01-01", "2017-01-01" ,"2017-01-02","2017-01-03","2017-02-01", "2017-02-02","2017-09-09");

$array2 = array("2017-01-01","2017-02-01","2017-03-01","2017-04-01");
$result = array_intersect(array_unique($array1), $array2);
echo "<pre>";
print_r($result);

输出:

Array
(
    [0] => 2017-01-01
    [3] => 2017-02-01
)

注意

array_intersect返回一个包含所有值的数组,其中所有 $array1值都存在于所有参数中。因此,如果您 $array1 有重复的数据,则结果数组也将具有重复的值。

我添加了array_unique来克服这种情况。

作者: Jigar Shah 发布者: 2017 年 9 月 15 日

0

1 作者的声誉

也许array_intersect()

$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);

结果

Array
(
    [a] => green
    [0] => red
)
作者: Teaminds 发布者: 2017 年 9 月 15 日

0

888 作者的声誉

尝试这个

function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue","yellow");
$a2=array("A"=>"red","b"=>"GREEN","yellow","black");
$a3=array("a"=>"green","b"=>"red","yellow","black");

$result=array_uintersect($a1,$a2,$a3,"myfunction");
print_r($result);

结果:

Array ( [a] => red [0] => yellow )
作者: Salim Ibrogimov 发布者: 2017 年 9 月 15 日
32x32