<?php
$events = [
0 => [
0 => [
"rsvp_id" => 2,
"event_id" => 237,
"formatted_start_time" => 1443052800,
"formatted_end_time" => 1443052800,
"event_group_date" => "24 Sep, Thursday 2015"
],
1 => [
"rsvp_id" => null,
"event_id" => 295,
"formatted_start_time" => 1443070800,
"formatted_end_time" => 1443070800,
"event_group_date" =>" 24 Sep, Thursday 2015"
],
2 => [
"rsvp_id" => null,
"event_id" => 294,
"formatted_start_time" => 1443099600,
"formatted_end_time" => 1443099600,
"event_group_date" => "24 Sep, Thursday 2015"
],
3 => [
"rsvp_id" => 1,
"event_id" => 330,
"formatted_start_time" => 1443118800,
"formatted_end_time" => 1443122400,
"event_group_date" => "24 Sep, Thursday 2015"
]
],
1 => [
0 => [
"rsvp_id" => 2,
"event_id" => 332,
"formatted_start_time" => 1443189600,
"formatted_end_time" => 1443193200,
"event_group_date" => "25 Sep, Friday 2015"
]
],
2 => [
0 => [
"rsvp_id" => null,
"event_id" => 239,
"formatted_start_time" => 1443571200,
"formatted_end_time" => 1443571200,
"event_group_date" => "30 Sep, Wednesday 2015"
]
]
];
function process
(array $events, $logged_in_user_id = 224) { $newEvents = [];
foreach ($events as $i => $key) {
foreach ($key as $index => $event) {
$conditions = false;
if (!isset($event["rsvp_id"])) { $aEventInvites = getInvites($event["event_id"]);
// try to match
foreach ($aEventInvites as $aeiKey => $aeiValue) {
foreach ($aeiValue as $invites) {
if (isset($invites["invited_user_id"]) && isset($invites["event_id"])) { if (
$invites["invited_user_id"] == $logged_in_user_id
&& $invites["event_id"] == $event["event_id"]
) {
$conditions = true;
}
}
}
}
}
} else {
$conditions = true;
}
if ($conditions) {
$newEvents[] = $event;
}
}
}
}
}
return $newEvents;
}
// Output of print_r($aEventInvites);
// dummy function since we just have sample data
function getInvites($eventId) {
// do some cool stuff ...
$result = [
0 => 2,
1 => [
0 => [
"invite_id" => 698,
"event_id" => 332, // id passed to function
"type_id" => 0,
"rsvp_id" => 0,
"user_id" => 970, // same id 970
"invited_user_id" => 970 // same id 970
],
1 => [
"invite_id" => 697,
"event_id" => 332, // id passed to function
"type_id" => 0,
"rsvp_id" => 0,
"user_id" => 244, // same id 244
"invited_user_id" => 244 // same id 244
]
]
];
return $result;
}
// Conditions:
// - $events Elements with rsvp_id set
// - $events Elements getInvites($eventId)[invited_user_id] == $logged_in_user_id && getInvites($eventId)[event_id] == $event[event_id]
$events = process($events);
echo "<pre>";
echo "</pre>";
?>
PD9waHAKJGV2ZW50cyA9IFsKICAgIDAgPT4gWwogICAgICAgIDAgPT4gWwogICAgICAgICAgICAicnN2cF9pZCIgPT4gMiwKICAgICAgICAgICAgImV2ZW50X2lkIiA9PiAyMzcsCiAgICAgICAgICAgICJmb3JtYXR0ZWRfc3RhcnRfdGltZSIgPT4gMTQ0MzA1MjgwMCwKICAgICAgICAgICAgImZvcm1hdHRlZF9lbmRfdGltZSIgPT4gMTQ0MzA1MjgwMCwKICAgICAgICAgICAgImV2ZW50X2dyb3VwX2RhdGUiID0+ICIyNCBTZXAsIFRodXJzZGF5IDIwMTUiCiAgICAgICAgXSwKICAgICAgICAxID0+IFsKICAgICAgICAgICAgInJzdnBfaWQiID0+IG51bGwsCiAgICAgICAgICAgICJldmVudF9pZCIgPT4gMjk1LAogICAgICAgICAgICAiZm9ybWF0dGVkX3N0YXJ0X3RpbWUiID0+IDE0NDMwNzA4MDAsCiAgICAgICAgICAgICJmb3JtYXR0ZWRfZW5kX3RpbWUiID0+IDE0NDMwNzA4MDAsCiAgICAgICAgICAgICJldmVudF9ncm91cF9kYXRlIiA9PiIgMjQgU2VwLCBUaHVyc2RheSAyMDE1IgogICAgICAgIF0sCiAgICAgICAgMiA9PiBbCiAgICAgICAgICAgICJyc3ZwX2lkIiA9PiBudWxsLAogICAgICAgICAgICAiZXZlbnRfaWQiID0+IDI5NCwKICAgICAgICAgICAgImZvcm1hdHRlZF9zdGFydF90aW1lIiA9PiAxNDQzMDk5NjAwLAogICAgICAgICAgICAiZm9ybWF0dGVkX2VuZF90aW1lIiA9PiAxNDQzMDk5NjAwLAogICAgICAgICAgICAiZXZlbnRfZ3JvdXBfZGF0ZSIgPT4gIjI0IFNlcCwgVGh1cnNkYXkgMjAxNSIKICAgICAgICBdLAogICAgICAgIDMgPT4gWwogICAgICAgICAgICAicnN2cF9pZCIgPT4gMSwKICAgICAgICAgICAgImV2ZW50X2lkIiA9PiAzMzAsCiAgICAgICAgICAgICJmb3JtYXR0ZWRfc3RhcnRfdGltZSIgPT4gMTQ0MzExODgwMCwKICAgICAgICAgICAgImZvcm1hdHRlZF9lbmRfdGltZSIgPT4gMTQ0MzEyMjQwMCwKICAgICAgICAgICAgImV2ZW50X2dyb3VwX2RhdGUiID0+ICIyNCBTZXAsIFRodXJzZGF5IDIwMTUiCiAgICAgICAgXQogICAgXSwKICAgIDEgPT4gWwogICAgICAgIDAgPT4gWwogICAgICAgICAgICAicnN2cF9pZCIgPT4gMiwKICAgICAgICAgICAgImV2ZW50X2lkIiA9PiAzMzIsCiAgICAgICAgICAgICJmb3JtYXR0ZWRfc3RhcnRfdGltZSIgPT4gMTQ0MzE4OTYwMCwKICAgICAgICAgICAgImZvcm1hdHRlZF9lbmRfdGltZSIgPT4gMTQ0MzE5MzIwMCwKICAgICAgICAgICAgImV2ZW50X2dyb3VwX2RhdGUiID0+ICIyNSBTZXAsIEZyaWRheSAyMDE1IgogICAgICAgIF0KICAgIF0sCiAgICAyID0+IFsKICAgICAgICAwID0+IFsKICAgICAgICAgICAgInJzdnBfaWQiID0+IG51bGwsCiAgICAgICAgICAgICJldmVudF9pZCIgPT4gMjM5LAogICAgICAgICAgICAiZm9ybWF0dGVkX3N0YXJ0X3RpbWUiID0+IDE0NDM1NzEyMDAsCiAgICAgICAgICAgICJmb3JtYXR0ZWRfZW5kX3RpbWUiID0+IDE0NDM1NzEyMDAsCiAgICAgICAgICAgICJldmVudF9ncm91cF9kYXRlIiA9PiAiMzAgU2VwLCBXZWRuZXNkYXkgMjAxNSIKICAgICAgICBdCiAgICBdCl07CgpmdW5jdGlvbiBwcm9jZXNzKGFycmF5ICRldmVudHMsICRsb2dnZWRfaW5fdXNlcl9pZCA9IDIyNCkgewogICAgJG5ld0V2ZW50cyA9IFtdOwoKICAgIGZvcmVhY2ggKCRldmVudHMgYXMgJGkgPT4gJGtleSkgewogICAgICAgIGlmIChpc19hcnJheSgka2V5KSAmJiAhaXNzZXQoJGtleVsiZXZlbnRfaWQiXSkpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGtleSBhcyAkaW5kZXggPT4gJGV2ZW50KSB7CiAgICAgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGV2ZW50KSAmJiBpc3NldCgkZXZlbnRbImV2ZW50X2lkIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvbmRpdGlvbnMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRldmVudFsicnN2cF9pZCJdKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkYUV2ZW50SW52aXRlcyA9IGdldEludml0ZXMoJGV2ZW50WyJldmVudF9pZCJdKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyeSB0byBtYXRjaAogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkYUV2ZW50SW52aXRlcyBhcyAkYWVpS2V5ID0+ICRhZWlWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRhZWlWYWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkYWVpVmFsdWUgYXMgJGludml0ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRpbnZpdGVzWyJpbnZpdGVkX3VzZXJfaWQiXSkgJiYgaXNzZXQoJGludml0ZXNbImV2ZW50X2lkIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGludml0ZXNbImludml0ZWRfdXNlcl9pZCJdID09ICRsb2dnZWRfaW5fdXNlcl9pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICRpbnZpdGVzWyJldmVudF9pZCJdICAgICAgICA9PSAkZXZlbnRbImV2ZW50X2lkIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb25kaXRpb25zID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb25kaXRpb25zID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICgkY29uZGl0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAgICAkbmV3RXZlbnRzW10gPSAkZXZlbnQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkbmV3RXZlbnRzOwp9CgovLyBPdXRwdXQgb2YgcHJpbnRfcigkYUV2ZW50SW52aXRlcyk7Ci8vIGR1bW15IGZ1bmN0aW9uIHNpbmNlIHdlIGp1c3QgaGF2ZSBzYW1wbGUgZGF0YQpmdW5jdGlvbiBnZXRJbnZpdGVzKCRldmVudElkKSB7CgkvLyBkbyBzb21lIGNvb2wgc3R1ZmYgLi4uCgkkcmVzdWx0ID0gWwoJCTAgPT4gMiwKCQkxID0+IFsKCQkJMCA9PiBbCgkJCQkiaW52aXRlX2lkIiAgPT4gNjk4LAoJCQkJImV2ZW50X2lkIiAgID0+IDMzMiwgLy8gaWQgcGFzc2VkIHRvIGZ1bmN0aW9uCgkJCQkidHlwZV9pZCIgICAgPT4gMCwKCQkJCSJyc3ZwX2lkIiAgICA9PiAwLAoJCQkJInVzZXJfaWQiICAgID0+IDk3MCwgICAgICAgICAgIC8vIHNhbWUgaWQgOTcwCgkJCQkiaW52aXRlZF91c2VyX2lkIiA9PiA5NzAgICAgLy8gc2FtZSBpZCA5NzAKCQkJXSwKCQkJMSA9PiBbCgkJCQkiaW52aXRlX2lkIiA9PiA2OTcsCgkJCQkiZXZlbnRfaWQiICA9PiAzMzIsIC8vIGlkIHBhc3NlZCB0byBmdW5jdGlvbgoJCQkJInR5cGVfaWQiICAgPT4gMCwKCQkJCSJyc3ZwX2lkIiAgID0+IDAsIAoJCQkJInVzZXJfaWQiICAgPT4gMjQ0LCAgICAgICAgICAgLy8gc2FtZSBpZCAyNDQKCQkJCSJpbnZpdGVkX3VzZXJfaWQiID0+IDI0NCAgICAvLyBzYW1lIGlkIDI0NAoJCQldCgkJXQoJXTsKCiAgICByZXR1cm4gJHJlc3VsdDsKfQoKLy8gQ29uZGl0aW9uczoKLy8gLSAkZXZlbnRzIEVsZW1lbnRzIHdpdGggcnN2cF9pZCBzZXQKLy8gLSAkZXZlbnRzIEVsZW1lbnRzIGdldEludml0ZXMoJGV2ZW50SWQpW2ludml0ZWRfdXNlcl9pZF0gPT0gJGxvZ2dlZF9pbl91c2VyX2lkICYmIGdldEludml0ZXMoJGV2ZW50SWQpW2V2ZW50X2lkXSA9PSAkZXZlbnRbZXZlbnRfaWRdCgokZXZlbnRzID0gcHJvY2VzcygkZXZlbnRzKTsKZWNobyAiPHByZT4iOwp2YXJfZHVtcCgkZXZlbnRzKTsKZWNobyAiPC9wcmU+IjsKCj8+