我有这个数组:
Array (
[0] => Array ( [x] => 2016-04-19 )
[1] => Array ( [x] => 2016-05-25 )
[2] => Array ( [x] => 2016-05-26 )
[3] => Array ( [x] => 2016-05-27 )
[4] => Array ( [x] => 2016-05-28 )
[5] => Array ( [x] => 2016-05-29 )
[6] => Array ( [x] => 2016-05-29 )
[7] => Array ( [x] => 2016-06-02 )
[8] => Array ( [x] => 2016-06-03 )
[9] => Array ( [x] => 2016-06-07 )
[10] => Array ( [x] => 2016-06-10 )
[11] => Array ( [x] => 2016-06-17 )
[12] => Array ( [x] => 2016-06-24 ) )
我正在尝试计算有多少天是重复的,并将这个数字放入变量中。例如,我们可以看到有 2 个相同的日期:
2016-05-29
我试过了array_count_values()
但它说它只能计算字符串和整数。这是正确的,因为这是一个日期变量。这是它的代码:
$eventDates = $object->get("date");
$result = $eventDates->format("Y-m-d");
$data[] = array("x"=>$result);
知道如何计算它们吗?
Using 数组映射 http://php.net/manual/en/function.array-map.php您可以将日期转换为字符串,然后您可以使用array_count_values
:
$theArray = array(array('x' => new DateTime('2016-04-19')),
array('x' => new DateTime('2016-04-19')),
array('x' => new DateTime('2016-04-19')),
array('x' => new DateTime('2016-05-19')));
function formatDate($d) {
return $d['x']->format('Y-m-d');
}
$results = array_map("formatDate", $theArray);
print_r(array_count_values($results));
.
Array (
[2016-04-19] => 3
[2016-05-19] => 1
)
然后您可以使用它来确定重复项。
(如果日期包含您想要忽略的时间元素,这也很有用。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)