<?php
$data = [
[
'ID' => 16,
'begin_date' => new \DateTime('2016-01-01 UTC'),
'end_date' => new \DateTime('2016-11-30 UTC'),
],
[
'ID' => 33,
'begin_date' => new \DateTime('2016-01-04 UTC'),
'end_date' => new \DateTime('2016-02-29 UTC'),
],
];
// assume length >= 1 w/ previous validation
// keep track of the in-progress leading element, assuming the first is leading to begin with
$currentLeading = $data[0];
foreach($data as $index => $element) {
if($element['begin_date'] > strtotime('now')) {
// first condition is true
if ($index == 0) {
echo "Error: Element cannot be the leading element";
// more likely return false if wrapped in a validation function
}
if($element['end_date'] > strtotime('now')) {
if ($element['end_date'] > $currentLeading['end_date']) {
$currentLeading = $element;
}
}
}
}
var_dump($currentLeading);
Notice: Object of class DateTime could not be converted to int in /in/I8nXC on line 21
Notice: Object of class DateTime could not be converted to int in /in/I8nXC on line 21
array(3) {
["ID"]=>
int(16)
["begin_date"]=>
object(DateTime)#1 (3) {
["date"]=>
string(26) "2016-01-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
["end_date"]=>
object(DateTime)#2 (3) {
["date"]=>
string(26) "2016-11-30 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
}
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Notice: Object of class DateTime could not be converted to int in /in/I8nXC on line 21
Notice: Object of class DateTime could not be converted to int in /in/I8nXC on line 21
array(3) {
["ID"]=>
int(16)
["begin_date"]=>
object(DateTime)#1 (3) {
["date"]=>
string(26) "2016-01-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
["end_date"]=>
object(DateTime)#2 (3) {
["date"]=>
string(26) "2016-11-30 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
}