Разве если не брать последний массив и проверять на вхождение, в него, скобокименно так, по представленному в вопросе примере таких нюансов не понять, тут уже сами адаптируйте алгоритм.
Ещё, просто пустое поле datetime? Или в нем должно что быть по умолчанию?это зависит от того как вы даете первый бонус, можете заносить туда дату регистрации и давать бонус не раньше суток после регистрации.
А как проверить прошли ли сутки?
Какие недостатки видите вы?
<?xml version="1.0" encoding="UTF-8"?>
, если же там есть еще какие то данные - приведите их целиком.