'How to repeat event for every 2 weeks on multi selection days upto 3 Occurances (times)

I want to repeat the event for every 2 weeks on multi selection days and that event will be repeat upto 3 occurances(times) from start date. tried below code. please help me. pfa enter image description here

    $scope.daysarr = [{dayname: "SUN",Name: 'Sunday', Selected: true},
{dayname: "MON",Name: 'Monday', Selected: false},
{dayname: "TUE",Name: 'Tuesday', Selected: true},
{dayname: "WED",Name: 'Wednesday', Selected: false},
{dayname: "THU",Name: 'Thursday', Selected: true},
{dayname: "FRI",Name: 'Friday', Selected: false},
{dayname: "SAT",Name: 'Saturday', Selected: false}];

for ($i=1; $i<=$after_occurance ; $i++) { // 3times
if($i==1)
{
    $datesArr[] = $date->format('Y-m-d');
}
else
{
    echo $dayOfWeek = $date->format('l');
    if ($dayOfWeek == 'Sunday' && $daysarr[0]->selected==1) { // i want to loop sun,tue,thu
        $date->modify("+{$repeatnum} weeks");   // 2 weeks
            $datesArr[] = $date->format('Y-m-d');
    }
    if ($dayOfWeek == 'Tuesday' && $daysarr[2]->selected==1) { // i want to loop sun,tue,thu
        $date->modify("+{$repeatnum} weeks");   // 2 weeks
            $datesArr[] = $date->format('Y-m-d');
    }
    if ($dayOfWeek == 'Thursday' && $daysarr[4]->selected==1) { // i want to loop sun,tue,thu
        $date->modify("+{$repeatnum} weeks");   // 2 weeks
            $datesArr[] = $date->format('Y-m-d');
    }
            
}}

expected output:

sun: 09-jan-2022, 23-jan-2022, 06-feb-2022

tue: 04-jan-2022, 18-jan-2022, 01-feb-2022

thu: 06-jan-2022, 20-jan-2022, 03-feb-2022



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source