fork download
  1. <?php
  2. $events = [
  3. 0 => [
  4. 0 => [
  5. "rsvp_id" => 2,
  6. "event_id" => 237,
  7. "formatted_start_time" => 1443052800,
  8. "formatted_end_time" => 1443052800,
  9. "event_group_date" => "24 Sep, Thursday 2015"
  10. ],
  11. 1 => [
  12. "rsvp_id" => null,
  13. "event_id" => 295,
  14. "formatted_start_time" => 1443070800,
  15. "formatted_end_time" => 1443070800,
  16. "event_group_date" =>" 24 Sep, Thursday 2015"
  17. ],
  18. 2 => [
  19. "rsvp_id" => null,
  20. "event_id" => 294,
  21. "formatted_start_time" => 1443099600,
  22. "formatted_end_time" => 1443099600,
  23. "event_group_date" => "24 Sep, Thursday 2015"
  24. ],
  25. 3 => [
  26. "rsvp_id" => 1,
  27. "event_id" => 330,
  28. "formatted_start_time" => 1443118800,
  29. "formatted_end_time" => 1443122400,
  30. "event_group_date" => "24 Sep, Thursday 2015"
  31. ]
  32. ],
  33. 1 => [
  34. 0 => [
  35. "rsvp_id" => 2,
  36. "event_id" => 332,
  37. "formatted_start_time" => 1443189600,
  38. "formatted_end_time" => 1443193200,
  39. "event_group_date" => "25 Sep, Friday 2015"
  40. ]
  41. ],
  42. 2 => [
  43. 0 => [
  44. "rsvp_id" => null,
  45. "event_id" => 239,
  46. "formatted_start_time" => 1443571200,
  47. "formatted_end_time" => 1443571200,
  48. "event_group_date" => "30 Sep, Wednesday 2015"
  49. ]
  50. ]
  51. ];
  52.  
  53. function process(array $events, $logged_in_user_id = 224) {
  54. $newEvents = [];
  55.  
  56. foreach ($events as $i => $key) {
  57. if (is_array($key) && !isset($key["event_id"])) {
  58. foreach ($key as $index => $event) {
  59. if (is_array($event) && isset($event["event_id"])) {
  60. $conditions = false;
  61. if (!isset($event["rsvp_id"])) {
  62. $aEventInvites = getInvites($event["event_id"]);
  63.  
  64. // try to match
  65. foreach ($aEventInvites as $aeiKey => $aeiValue) {
  66. if (is_array($aeiValue)) {
  67. foreach ($aeiValue as $invites) {
  68. if (isset($invites["invited_user_id"]) && isset($invites["event_id"])) {
  69. if (
  70. $invites["invited_user_id"] == $logged_in_user_id
  71. && $invites["event_id"] == $event["event_id"]
  72. ) {
  73. $conditions = true;
  74. }
  75. }
  76. }
  77. }
  78. }
  79. } else {
  80. $conditions = true;
  81. }
  82.  
  83. if ($conditions) {
  84. $newEvents[] = $event;
  85. }
  86. }
  87. }
  88. }
  89. }
  90.  
  91. return $newEvents;
  92. }
  93.  
  94. // Output of print_r($aEventInvites);
  95. // dummy function since we just have sample data
  96. function getInvites($eventId) {
  97. // do some cool stuff ...
  98. $result = [
  99. 0 => 2,
  100. 1 => [
  101. 0 => [
  102. "invite_id" => 698,
  103. "event_id" => 332, // id passed to function
  104. "type_id" => 0,
  105. "rsvp_id" => 0,
  106. "user_id" => 970, // same id 970
  107. "invited_user_id" => 970 // same id 970
  108. ],
  109. 1 => [
  110. "invite_id" => 697,
  111. "event_id" => 332, // id passed to function
  112. "type_id" => 0,
  113. "rsvp_id" => 0,
  114. "user_id" => 244, // same id 244
  115. "invited_user_id" => 244 // same id 244
  116. ]
  117. ]
  118. ];
  119.  
  120. return $result;
  121. }
  122.  
  123. // Conditions:
  124. // - $events Elements with rsvp_id set
  125. // - $events Elements getInvites($eventId)[invited_user_id] == $logged_in_user_id && getInvites($eventId)[event_id] == $event[event_id]
  126.  
  127. $events = process($events);
  128. echo "<pre>";
  129. var_dump($events);
  130. echo "</pre>";
  131.  
  132. ?>
Success #stdin #stdout 0.03s 52480KB
stdin
Standard input is empty
stdout
<pre>array(3) {
  [0]=>
  array(5) {
    ["rsvp_id"]=>
    int(2)
    ["event_id"]=>
    int(237)
    ["formatted_start_time"]=>
    int(1443052800)
    ["formatted_end_time"]=>
    int(1443052800)
    ["event_group_date"]=>
    string(21) "24 Sep, Thursday 2015"
  }
  [1]=>
  array(5) {
    ["rsvp_id"]=>
    int(1)
    ["event_id"]=>
    int(330)
    ["formatted_start_time"]=>
    int(1443118800)
    ["formatted_end_time"]=>
    int(1443122400)
    ["event_group_date"]=>
    string(21) "24 Sep, Thursday 2015"
  }
  [2]=>
  array(5) {
    ["rsvp_id"]=>
    int(2)
    ["event_id"]=>
    int(332)
    ["formatted_start_time"]=>
    int(1443189600)
    ["formatted_end_time"]=>
    int(1443193200)
    ["event_group_date"]=>
    string(19) "25 Sep, Friday 2015"
  }
}
</pre>