Other Code Samples
Table of Contents


Other Code Samples

-Analysis 1 - Code - Six 6 Part - Relationship Compatibility
-Analysis 1 - Code - Six 6 Part - cosmic_reports_array_direct_to_which_special_custom_page
-PHP code - For Loops FOR- Synastry, Single Birthchart, Declinations
-Analysis 1 - Code - Six 6 Part - cosmic--functions_self_synastry_composite
-Loop Functions - Code
-Moon and How You Feel - Transits Report




Analysis 1 - Code - Six 6 Part - Relationship Compatibility


6 part.txt



-------------------------





your-6-part-relationship-analysis |



(1) The-Initial-Compatibility |

(2) The-Potiential-Relationship |

(3) How-You-Feel-About-It |

(4) How-They-Feel-About-It |

(5) How-The-Relationship-Affects-You |

(6) How-The-Relationship-Affects-Them |





-------------------------



(1) The-Initial-Compatibility |









if($_GET['report']=='The-Initial-Compatibility'){



$special_aspect_section='synastry';



$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key1]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



#echo "
data1: 
"; print_r($data1); echo "
--
";





$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key2]);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



#echo "
data2: 
"; print_r($data2); echo "
--
";



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender1);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...



//echo "
"; print_r($saved_aspects);echo "
";



$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);





//echo $birthchart_summary_table."
"; //made in session_start





}







-------------------------





(2) The-Potiential-Relationship |











if($_GET['report']=='The-Potiential-Relationship'){

//echo "$gender,$gender2";die();

$special_aspect_section='self';



#echo "
composite - potiential: $ _SESSION[$ joint_id]['composite']
";print_r($_SESSION[$joint_id]['composite']);echo "
--
"; die();



$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

//if(isset($_GET['show_something'])){ echo "
composite - potiential: data1
";print_r($data1);echo "
--
"; die();}

echo "
composite - potiential: data1
";print_r($data1);echo "
--
"; die();





$degrees_full = $data1['degrees_full'];

$directions = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */

//if(isset($_GET['show_something'])){ echo "
composite - potiential: saved_aspects (".count($saved_aspects).")
";print_r($saved_aspects);echo "
--
"; die();}



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);

//if(isset($_GET['show_something'])){ echo "
composite - potiential: aspect_boxes
";print_r($aspect_boxes);echo "
--
"; die();}

//echo "
aspect_boxes

";print_r($aspect_boxes);echo "
";die();



//echo $birthchart_summary_table."
"; //made in session_start



$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}









-------------------------





(3) How-You-Feel-About-It |







if($_GET['report']=='How-The-Relationship-Affects-You'){



$special_aspect_section='self';

$data4 = $_SESSION[$joint_id]['composite1'];

$summary_table_composite = $_SESSION[$joint_id]['summary_table_composite1'];

$data_1 = make_full_degrees_and_directions_arrays($data4);

//echo "
data_1
"; print_r($data_1); echo "
"; die();



$degrees_full = $data_1['degrees_full'];

$directions = $data_1['directions'];

$owner_array_by_planet1 = $data_1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

//echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; die();



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);





//echo "
aspect_boxes

";print_r($aspect_boxes);echo "
";die();

//echo $birthchart_summary_table."
"; //made in session_start

$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite1";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}









-------------------------



(4) How-They-Feel-About-It |









if($_GET['report']=='How-The-Relationship-Affects-Them'){



$special_aspect_section='self';



$data5 = $_SESSION[$joint_id]['composite2'];

$summary_table_composite = $_SESSION[$joint_id]['summary_table_composite2'];

$data1 = make_full_degrees_and_directions_arrays($data5);

$degrees_full = $data1['degrees_full'];

$directions = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo $birthchart_summary_table."
"; //made in session_start

$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite2";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}







-------------------------



(5) How-The-Relationship-Affects-You |







if($_GET['report']=='How-You-Feel-About-It'){



$special_aspect_section='synastry';



$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key1]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="You";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();







//Change the Composite Name to Composite, so I can see it in the aspects results, for a certain planet

$tmp_name = $data3['name'];

$data3['name']="Composite";





$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender);

//echo "
composite - potiential: saved_aspects (".count($saved_aspects).")
";print_r($saved_aspects);echo "
--
"; die();

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);







//echo $birthchart_summary_table."
"; //made in session_start

$data3['name']=$tmp_name;



}







-------------------------





(6) How-The-Relationship-Affects-Them |







if($_GET['report']=='How-They-Feel-About-It'){



$special_aspect_section='synastry';



//Change the Composite Name to Composite, so I can see it in the aspects results, for a certain planet

$tmp_name = $data3['name'];

$data3['name']="Composite";





$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key2]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/





$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo $birthchart_summary_table."
"; //made in session_start

$data3['name']=$tmp_name;



}



















//-------------------------------------------------

//-------------------------------------------------











$magic_divider = 170;

//self

if($_GET['report']=='Specifically-You' || $_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='Your-Cosmic-Rating'){

$luck_cap = 5;

$sex_cap = 5;

$love_cap = 3;

$drama_cap = 5;

}

elseif($_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

$luck_cap = 5;

$sex_cap = 5;

$love_cap = 2;

$drama_cap = 4;

}

/*if($_GET['report']=='Specifically-You' || $_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='Your-Cosmic-Rating' || $_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

$luck_cap = 6;

$sex_cap = 6;

$love_cap = 6;

$drama_cap = 7;

}*/

else{

//synastry

$luck_cap = 9;

$sex_cap = 9;

$love_cap = 9;

$drama_cap = 12;

}







Analysis 1 - Code - Six 6 Part - cosmic_reports_array_direct_to_which_special_custom_page



//COSMIC DNA



if($_GET['report']=='Golden-Time-Chiron'){

$filename_custom = "custom_golden_time_chiron.php";

}

if($_GET['report']=='Golden-Time-Chiron-Past'){

$filename_custom = "custom_golden_time_chiron_past.php";

}

if($_GET['report']=='Who-Is-Like-You'){

$filename_custom = "custom_who_is_like_you.php";

}

elseif($_GET['report']=='Ascendant-And-Houses'){

$filename_custom = "custom_ascendant_and_the_houses.php";

}

elseif($_GET['report']=='Signs-Summary-Breakdown'){

$filename_custom = "custom_signs_summary_breakdown.php";

}

elseif($_GET['report']=='Genders-Breakdown'){

$filename_custom = "custom_genders_masculine_feminine.php";

}

elseif($_GET['report']=='Orientations-Breakdown'){

$filename_custom = "custom_orientations_personal_interpersonal_transpersonal.php";

}

elseif($_GET['report']=='Perspectives-Breakdown'){

$filename_custom = "custom_perspectives_subjective_objective.php";

}

elseif($_GET['report']=='Elements-Breakdown'){

$filename_custom = "custom_elements_fire_earth_air_water.php";

}

elseif($_GET['report']=='Modes-Breakdown'){

$filename_custom = "custom_modes_cardinal_fixed_mutable.php";

}

elseif($_GET['report']=='Planetary-Influences-Breakdown'){

$filename_custom = "custom_planetary_influences.php";

}

elseif($_GET['report']=='Birthchart-Introduction'){

$filename_custom = "custom_the_planets_table.php";

}

elseif($_GET['report']=='Birthcharts'){

$filename_custom = "custom_birthcharts.php";

}

elseif($_GET['report']=='Sun-and-Moon-Personality'){

$filename_custom = "custom_sun-moon.php";

}

elseif($_GET['report']=='Get-Prosperity'){

$filename_custom = "custom_prosperity.php";

}

elseif($_GET['report']=='Your-Cosmic-Rating'){

$filename_custom = "cosmic_reports_arrays_aspects_functions_self_synastry_composite.php";

}





//COSMIC COMPATIBILITY



elseif($_GET['report']=='Psyche-Eros-Compatibility'){

$filename_custom = "cosmic_reports_arrays_aspects_functions_psyche-eros-compatibility.php";

}

elseif($_GET['report']=='The-Initial-Compatibility' || $_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='How-You-Feel-About-It' || $_GET['report']=='How-They-Feel-About-It' || $_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

$filename_custom = "cosmic_reports_arrays_aspects_functions_self_synastry_composite.php";

}

elseif($_GET['report']=='Emotional-Connection'){

$filename_custom = "compatibility_report_emotional_connection.php";

}

elseif($_GET['report']=='Love-Connection'){

$filename_custom = "compatibility_report_love_connection.php";

}

elseif($_GET['report']=='Core-Values-Connection'){

$filename_custom = "compatibility_report_core_values_connection.php";

}







?>






PHP code - For Loops FOR- Synastry, Single Birthchart, Declinations


PHP code - For Loops FOR- Synastry, Single Birthchart, Declinations





In php code, how does an astrology “synastry” for loop differ from a single charts planets-for loop?. One is looping and comparing 2 birth charts planets degrees, and the other is using its own planets to compare to its other planets in a single chart. Give me the example of 2 for loops in php to see how they are different. Can you do that? There is an array of Magi Astrology's angles (0,60,120) (99, 180), and an array of Magi Astrology orbs used as well.. use best practices for Magu Astrology in the php code for loops Make sure to use efficient for loops. Create one for loop for single planets birthchart, and plan other for synastry between 2 charts. Can you do that?



Here's an example of how you can create two for loops in PHP to compare planets in a single birth chart and between two charts in a synastry analysis using Magi Astrology's angles and orbs:





// Single Birth Chart For Loop $birthChartPlanets = array( 'Sun' => 180.5, 'Moon' => 45.3, 'Mercury' => 210.2, 'Venus' => 120.8, // ... add more planets as needed ); // Loop through the planets in the single birth chart foreach ($birthChartPlanets as $planet => $degree) { // Compare the current planet with the other planets in the same chart foreach ($birthChartPlanets as $otherPlanet => $otherDegree) { if ($planet !== $otherPlanet) { // Perform the desired calculations or analysis using the degrees of the two planets // You can apply Magi Astrology's angles and orbs as necessary // Example: $angle = abs($degree - $otherDegree); $orb = 2.0; // Set your desired orb value // Check if the angle falls within the desired range if (in_array($angle, array(0, 60, 120, 99, 180)) && $angle <= $orb) { // Perform the desired action or interpretation for this aspect echo "The aspect between $planet and $otherPlanet is significant."; } } } }



// Synastry For Loop



$chart1Planets = array( 'Sun' => 180.5, 'Moon' => 45.3, 'Mercury' => 210.2, 'Venus' => 120.8, // ... add more planets as needed ); $chart2Planets = array( 'Sun' => 200.0, 'Moon' => 30.0, 'Mercury' => 220.5, 'Venus' => 110.0, // ... add more planets as needed ); // Loop through the planets in the first birth chart foreach ($chart1Planets as $planet => $degree1) { // Loop through the planets in the second birth chart foreach ($chart2Planets as $otherPlanet => $degree2) { // Perform the desired calculations or analysis using the degrees of the two planets // You can apply Magi Astrology's angles and orbs as necessary // Example: $angle = abs($degree1 - $degree2); $orb = 2.0; // Set your desired orb value // Check if the angle falls within the desired range if (in_array($angle, array(0, 60, 120, 99, 180)) && $angle <= $orb) { // Perform the desired action or interpretation for this aspect echo "There is a significant aspect between $planet in Chart 1 and $otherPlanet in Chart 2."; } } }



These examples demonstrate how you can use for loops in PHP to compare planets in a single birth chart and between two charts in a synastry analysis. You can modify and expand the code as needed, incorporating Magi Astrology's angles and orbs to perform the desired calculations and interpretations for the aspects.





What are the magi astrology orbs per angle(0,30,60,120, 45,90,180,150) ? Using best practices in magi astrology I looked it up on magi Helena and it was all 3 degree orbs for geo charts



In Magi Astrology, the recommended orbs for the major angles are generally considered to be around 3 degrees. However, it's important to note that orbs can vary depending on the specific astrologer's interpretation and methodology. While a 3-degree orb is commonly used for the major angles, some practitioners may choose to use slightly larger or smaller orbs based on their preferences and experience.

Here's a breakdown of the recommended orbs per angle in Magi Astrology:

• 0 degrees (Conjunction): Approximately 3-degree orb.

• 30 degrees (Sextile): Approximately 3-degree orb.

• 60 degrees (Trine): Approximately 3-degree orb.

• 120 degrees (Opposition): Approximately 3-degree orb.

• 45 degrees (Semi-Sextile): Approximately 2-degree orb.

• 90 degrees (Square): Approximately 3-degree orb.

• 180 degrees (Opposition): Approximately 3-degree orb.

• 150 degrees (Quincunx): Approximately 2-degree orb.

These orb values provide a general guideline for Magi Astrology, but it's important to note that different astrologers may have slight variations in their preferred orb sizes. It's always a good idea to consult the specific teachings or literature of the Magi Astrologer you are following for their recommended orbs, as they may have their own unique perspective or methodology.









Show me an example php for loop for finding matches in the declinations? Show me one for synastry And one for a single set of planets



Here are examples of PHP for loops that can be used to find matches in declinations for synastry analysis and a single set of planets:

1. Finding Matches in Declinations - Synastry:



// Sample declination data for two birth charts $chart1Declinations = array( 'Sun' => 18.0, 'Moon' => -5.3, 'Mercury' => 12.8, // ... add more planets as needed ); $chart2Declinations = array( 'Sun' => 12.0, 'Moon' => -10.5, 'Mercury' => 8.7, // ... add more planets as needed ); // Loop through the planets in the first birth chart foreach ($chart1Declinations as $planet => $declination1) { // Loop through the planets in the second birth chart foreach ($chart2Declinations as $otherPlanet => $declination2) { // Calculate the difference in declinations $difference = abs($declination1 - $declination2); // Set your desired orb value for declinations $orb = 1.0; // Check if the difference falls within the desired orb range if ($difference <= $orb) { // Perform the desired action or interpretation for this declination match echo "There is a declination match between $planet in Chart 1 and $otherPlanet in Chart 2."; } } }



2. Finding Matches in Declinations - Single Set of Planets:



// Sample declination data for a single birth chart $birthChartDeclinations = array( 'Sun' => 18.0, 'Moon' => -5.3, 'Mercury' => 12.8, // ... add more planets as needed ); // Loop through the planets in the birth chart foreach ($birthChartDeclinations as $planet => $declination) { // Loop through the other planets in the birth chart foreach ($birthChartDeclinations as $otherPlanet => $otherDeclination) { if ($planet !== $otherPlanet) { // Calculate the difference in declinations $difference = abs($declination - $otherDeclination); // Set your desired orb value for declinations $orb = 1.0; // Check if the difference falls within the desired orb range if ($difference <= $orb) { // Perform the desired action or interpretation for this declination match echo "There is a declination match between $planet and $otherPlanet in the birth chart."; } } } }



These examples demonstrate how you can use for loops in PHP to compare declinations in synastry analysis and within a single set of planets. By calculating the difference in declinations and comparing it to a specified orb, you can identify matches and perform the desired actions or interpretations based on the results. Remember to adjust the orb value according to your specific preferences and the guidelines of Magi Astrology.



Here are the new orbs Geo Parallel 1.2° Geo Contra-parallel 1.2° Helio Parallel 0.3° Helio Contra-latitude 0.3°



Thank you for providing the new orbs for parallel and contra-parallel aspects in both geocentric and heliocentric charts. Here's an updated example of PHP for loops considering these orbs:

1. Finding Matches in Parallel and Contra-Parallel - Synastry:



// Sample parallel and contra-parallel data for two birth charts $chart1Declinations = array( 'Sun' => 0.8, 'Moon' => -1.3, 'Mercury' => 0.5, // ... add more planets as needed ); $chart2Declinations = array( 'Sun' => 1.2, 'Moon' => -0.9, 'Mercury' => 0.3, // ... add more planets as needed ); // Loop through the planets in the first birth chart foreach ($chart1Declinations as $planet => $declination1) { // Loop through the planets in the second birth chart foreach ($chart2Declinations as $otherPlanet => $declination2) { // Calculate the difference in declinations $difference = abs($declination1 - $declination2); // Set your desired orbs for parallel and contra-parallel aspects $parallelOrb = 1.2; $contraParallelOrb = 1.2; // Check if the difference falls within the desired orb range for parallel or contra-parallel aspects if ($difference <= $parallelOrb) { // Perform the desired action or interpretation for this parallel aspect match echo "There is a parallel aspect between $planet in Chart 1 and $otherPlanet in Chart 2."; } if ($difference >= 180 - $contraParallelOrb && $difference <= 180 + $contraParallelOrb) { // Perform the desired action or interpretation for this contra-parallel aspect match echo "There is a contra-parallel aspect between $planet in Chart 1 and $otherPlanet in Chart 2."; } } }



2. Finding Matches in Parallel and Contra-Parallel - Single Set of Planets:



// Sample parallel and contra-parallel data for a single birth chart $birthChartDeclinations = array( 'Sun' => 0.8, 'Moon' => -1.3, 'Mercury' => 0.5, // ... add more planets as needed ); // Loop through the planets in the birth chart foreach ($birthChartDeclinations as $planet => $declination) { // Loop through the other planets in the birth chart foreach ($birthChartDeclinations as $otherPlanet => $otherDeclination) { if ($planet !== $otherPlanet) { // Calculate the difference in declinations $difference = abs($declination - $otherDeclination); // Set your desired orbs for parallel and contra-parallel aspects $parallelOrb = 1.2; $contraParallelOrb = 1.2; // Check if the difference falls within the desired orb range for parallel or contra-parallel aspects if ($difference <= $parallelOrb) { // Perform the desired action or interpretation for this parallel aspect match echo "There is a parallel aspect between $planet and $otherPlanet in the birth chart."; } if ($difference >= 180 - $contraParallelOrb && $difference <= 180 + $contraParallelOrb) { // Perform the desired action or interpretation for this contra-parallel aspect match echo "There is a contra-parallel aspect between $planet and $otherPlanet in the birth chart."; } } } }



These examples incorporate the updated orbs for parallel and contra-parallel aspects in both geocentric and heliocentric charts. Adjust the orbs as needed and customize the actions or interpretations based on your specific requirements and the guidelines of Magi Astrology.





Analysis 1 - Code - Six 6 Part - cosmic--functions_self_synastry_composite






function is_within_orb($num,$orb){

//echo "num: $num - orb: $orb
";

if($num<=$orb){

//$n = $orb-$num;

return ( round($num,2) );

}

else return NULL;

}



function check_for_aspect_single_comparison($aspect_name,$your_planet,$first_planet_deg360,$one_of_the_planet_names,$second_planet_deg360,$aspect_array,$difference_degs_of_planets){

#

#echo "


orb_of - Story Step 1: ... $your_planet-$aspect_name-$one_of_the_planet_names

aspect_name: $aspect_name ... your_planet: $your_planet ... first_planet_deg360: $first_planet_deg360 ... one_of_the_planet_names: $one_of_the_planet_names ... second_planet_deg360: $second_planet_deg360 ... the whole angles_organized array ... difference_degs_of_planets: $difference_degs_of_planets

";





//$aspect_name = $a;

$p1 = $your_planet;

$p2 = $one_of_the_planet_names;

$d1 = $first_planet_deg360; //degree of planet1

$d2 = $second_planet_deg360; //degree of planet2

#

#echo "orb_of - Story Step 2:

p1: $p1 ... p2: $p2 ... d1: $d1 ... d2: $d2

";



//expand the numbers 360 in front and 360 behind

//to make them work every time

//the lesser difference

//$difference = get_lesser_difference_360($d1,$d2);

//

//echo " - - - lesser difference of $p1 ($d1) & $p2($d2) - diff: ".$difference."
";



//take this number and look in the aspects to see if it matches, using the orb that you end up going with

$aspect_orb = $aspect_array['aspect_orb'];

$aspect_degrees = $aspect_array['aspect_degrees'];

#

#echo "orb_of - Story Step 3:

aspect_orb: aspects by angleName to orb - array ... aspect_degrees: aspects by angleName to degree - array

";





//check against all the orbs

$total_orbs = count($aspect_orb);



#for($x=0;$x<=$total_orbs;$x++){

$aspect_degree = $aspect_degrees[$aspect_name];

$orb_of_aspect = $aspect_orb[$aspect_name];

$orb = get_lesser_difference_simple($difference_degs_of_planets,$aspect_degree); # orb - diff_of_aspect_deg_and_planet_diff_degs

#

#echo "orb_of - Story Step 4

aspect_degree: $aspect_degree, orb_of_aspect: $orb_of_aspect, orb: $orb

";



//echo "($x/$total_orbs) diff_of_aspect_deg_and_planet_diff_degs: $diff_of_aspect_deg_and_planet_diff_degs - aspect_name: $aspect_name - aspect_degrees: $aspect_degree - orb_of_aspect: $orb_of_aspect
";

//echo "
aspect_degrees:
";print_r($aspect_degrees);echo "
";//die();

//echo "
aspect_orb:
";print_r($aspect_orb);echo "
";//die();



//$aspect_array['aspect_orb'] = $aspect_orb; //by ['aspect_name']

//$aspect_array['aspect_degrees'] = $aspect_degrees;



//a is the aspect name, that the arrays are set up with info for

//take higher $d (diff) and aspect_num(aspect), get the difference from them



//is_within_orb - returns the number of the actual GOOD ORB - or NULL

$within_orb = is_within_orb($orb,$orb_of_aspect);

#

#echo "orb_of - Story Step 5

within_orb: '"; print_r($within_orb); echo "'

";



//echo "
"; print_r($within_orb); echo "
";die();

if($within_orb!=NULL) return $within_orb;

#}



//if aspect is found - return true

return NULL;

}





function put_2planets_in_order($p1,$p2,$planets_order,$owner1,$owner2){



if($planets_order[$p1]<$planets_order[$p2]) return array($p1,$p2,$owner1,$owner2); else return array($p2,$p1,$owner2,$owner1);

}





function special_aspect_power($p1,$p2,$aspect_name,$orb,$aspect_orb,$power_of_planet,$power_of_orb,$power_of_aspect){

#echo "special_aspect_power

p1: $p1 ... p2: $p2 ... aspect_name: $aspect_name ... orb: $orb ... aspect_orb: $aspect_orb ... power_of_planet: $power_of_planet ... power_of_orb: $power_of_orb ... power_of_aspect: $power_of_aspect

";

//ORB is max distance (add wiggle_room) for 2 planets



/*//for planetary geometry only

$reality_full_strength_orb=4.625;

$reality_half_strength_orb=5.125;

$reality_quarter_strength_orb=6.125;

*/

$good_magiorb = 4.625;



if ($orb<$good_magiorb){ //give it the full strenth possible for the best orb

$power_of_orb_b4 = $power_of_orb; //not returning this value though

$power_of_orb = 2*$power_of_orb;

}

else {

$power_of_orb_b4 = $power_of_orb; //not returning this value though

$max_orb = $aspect_orb[$aspect_name];



//make the power better, the less it's away from the end... meaningful_orb

$gd=$good_magiorb;

$beg=$orb-$gd;

//echo "
"; print_r($aspect_orb); echo "
";die();



$end=$max_orb - $gd;



$r=( ($end-$beg)/$end ) +1; //1.5 if it's maxorb is 10 and orb is 7.5



$power_of_orb = $power_of_orb * $r;

}





//if novile orb was .63 and 1 is good,

//now it's 1/.63 = 1.58



//if conjunction orb was 1.5 and 10 is good

//now it's 10/1.63 = 6.13



//if conjunction orb was 1.5 and 10 is good

//now it's 10/5.38 = 1.86

$quality__orb_to_meaningful_orb_for_aspect = $this_orb/$orb;

//print_r($aspect_orb[$aspect_name]);die();

//15 - 5 ... add 2 of these

$planet1power = $power_of_planet[$p1];

$planet2power = $power_of_planet[$p2];

$planetspower = $planet1power + $planet2power;

//15 - 4

//$power_of_aspect;

//$power_of_orb



//number got pretty big, so this is to reduce the overall power numbers

$reducing_number_for_large_numbers = 10;



if($power_of_aspect<0) $power_of_aspect_to_add = $power_of_aspect * -1;

else $power_of_aspect_to_add = $power_of_aspect;



$power = ( $planetspower + $power_of_aspect_to_add ) * $power_of_orb / $reducing_number_for_large_numbers;



if($power_of_aspect<0) $power *= -1;



$power = round($power,0);



//echo $power; die();



return $power;

}



function power_of($p1,$p2,$aspect_name,$orb,$aspect_orb,$power_of_planet,$power_of_orb,$power_of_aspect){

#echo "


power_of - Story Step 1: ... $p1-$aspect_name-$p2

p1: $p1 ... p2: $p2 ... aspect_name: $aspect_name ... orb: $orb ... orbs_for_all_angles_array ... power_only_for_all_planets_array: ... power_of_orb: $power_of_orb ... power_of_aspect: $power_of_aspect

";



//ORB is max distance (add wiggle_room) for 2 planets



//if novile orb was .63 and 1 is good,

//now it's 1/.63 = 1.58



//if conjunction orb was 1.5 and 10 is good

//now it's 10/1.63 = 6.13



//if conjunction orb was 1.5 and 10 is good

//now it's 10/5.38 = 1.86

$quality__orb_to_meaningful_orb_for_aspect = $aspect_orb[$aspect_name]/$orb;

//print_r($aspect_orb[$aspect_name]);die();

//15 - 5 ... add 2 of these

$planet1power = $power_of_planet[$p1];

$planet2power = $power_of_planet[$p2];

$planetspower = $planet1power + $planet2power;

#echo "power_of - Story Step 2:

planet1power: $planet1power, planet2power: $planet2power, planetspower: $planetspower

";

//15 - 4

//$power_of_aspect;

//$power_of_orb



//number got pretty big, so this is to reduce the overall power numbers

$reducing_number_for_large_numbers = 10;



if($power_of_aspect<0) $power_of_aspect_to_add = $power_of_aspect * -1;

else $power_of_aspect_to_add = $power_of_aspect;

#echo "power_of - Story Step 3:

power_of_aspect_to_add: $power_of_aspect_to_add

";







$power = ( $planetspower + $power_of_aspect_to_add ) * $power_of_orb / $reducing_number_for_large_numbers;

#echo "power_of - Story Step 4:

power: $power

";



if($power_of_aspect<0) $power *= -1;



$power = round($power,0);

#echo "power_of - Story Step 5:

power - rounded: $power

";





/*if($power==NULL){

echo "NO POWER...: $p1-".$aspect_name."-$p2

";

echo "p1 $p1,p2 $p2,aspect_name $aspect_name,orb $orb,aspect_orb ".$aspect_orb[$aspect_name].",power_of_planet1 ".$power_of_planet[$p1].",power_of_planet2 ".$power_of_planet[$p2].",power_of_orb $power_of_orb,power_of_aspect ".$power_of_aspect[$aspect_name];

//die();

}*/



return $power;

}





function directional_affecting_power($pl1,$pl2,$direction1,$direction2,$aspect_name,$power_num){



//bidirectional------INCREASE POS/DECREASE NEG power

if( ($direction1=="retrograde" && $direction2 =="direct") || ($direction1=="direct" && $direction2 =="retrograde") ){

$bidirectional = "bidirectional";

}

else $bidirectional = "normal";



//double retrograde------INCREASE POS by 2.5/INCREASE NEG power by 2

if($direction1=="retrograde" && $direction2 =="retrograde"){

$double_retrograde = "double_retrograde";

}

else $double_retrograde = "normal";



//------------------------------------------------------------------------

if($pl1=="Saturn" || $pl2=="Saturn"){

//------------------------------------------------------------------------

//SATURN is 1 PLANET //ALWAYS A CLASH, make it negative, if quincunx

//if other angle, just intensify it, ease the negative bi-dir

//echo "SATURN: $pl1-".$aspect_name."-$pl2
";

//-------QUINCUNX------------------

//While it is considered to be an enhancement aspect, the nature of a quincunx is that it can occasionally be over-exuberant and lacking in restraint. A bi-directional or double retrograde quincunx is calmer and easier to deal with.

if($aspect_name=="Quinqunx"){

$power_num = $power_num * -1; //make negative



//quincunx and a contra-parallel are enhancement aspects except when Saturn is included in the aspect. Saturn in quincunx or contra-parallel is always a clash.



//reduce the negative a little, if these types are there

if($bidirectional == "bidirectional" || $double_retrograde == "double_retrograde") $power_num = $power_num * 0.6;

}

//------------------------------------------------------------------------

}

//------------------------------------------------------------------------



else{

//positive - bidir - a lot better / double-ret - are the Most Beneficial Type of Enhancements

if($power_of_aspect>0){

if($bidirectional == "bidirectional") $power_num = $power_num*1.8;

elseif($double_retrograde == "double_retrograde") $power_num = $power_num*2.5;

}

//negative - bidirec - easier, less bad / double-ret - the worst

else{

if($bidirectional == "bidirectional") $power_num = $power_num * 0.6;

elseif($double_retrograde == "double_retrograde") $power_num = $power_num * 2;

}

}



return array('power'=>$power_num,'bidirectional'=>$bidirectional,'double_retrograde'=>$double_retrograde);

}





function insert_aspect_into_saved_array($saved_aspects,$planet1,$aspect_name,$aspect_orb,$planet2,$orb,$aspect_degree,$planets_order,$power_of_planet,$direction1,$direction2,$aspect_power,$aspect_definition,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender,$gender2){



$p1 = $planet1;

$p2 = $planet2;



$owner1_full = explode(" ",$owner_array_by_planet1[$p1]);

$owner2_full = explode(" ",$owner_array_by_planet2[$p2]);

$owner1 = $owner1_full[0];

$owner2 = $owner2_full[0];



//echo "$p1 ($owner1) - $p2 ($owner2)

"; die();



$order = put_2planets_in_order($p1,$p2,$planets_order,$owner1,$owner2);

$pl1 = ucwords($order[0]);

$pl2 = ucwords($order[1]);

$owner1 = $order[2];

$owner2 = $order[3];

if($owner1==NULL){

//echo "no owner
";

//die();

}

//echo "order: $pl1 - $pl2
";die();



$meaningful_orb = $aspect_orb[$aspect_name];

//echo "meaningful_orb: $meaningful_orb
";

//8.5 if orb was 1.5, divided by 10, gets 8.5 = 85 ... out of 100

$power_of_orb = round((($meaningful_orb-$orb)/$meaningful_orb * 100),2);



$power_of_aspect = $aspect_power[$aspect_name];

//echo "
aspect_power: 
";print_r($aspect_power);echo "
";



$power_num = power_of($pl1,$pl2,$aspect_name,$orb,$aspect_orb,$power_of_planet,$power_of_orb,$power_of_aspect);



$power_of_planets = $power_of_planet[$pl1] + $power_of_planet[$pl2];



//CHANGES POWER...

//bidirectional, double retrograde, and if saturn is involved

$affecting = directional_affecting_power($pl1,$pl2,$direction1,$direction2,$aspect_name,$power_num);

//echo "
affecting: 
";print_r($affecting);echo "
"; die();



$power_num2 = $affecting['power'];

$bidirectional = $affecting['bidirectional'];

$double_retrograde = $affecting['double_retrograde'];

if($power_num2==$power_num) $power_num2=NULL; //only show it if it was changed



#echo "power in insert_aspect_into_saved_array:

power_num: $power_num ... power_of_planets: $power_of_planets ... power_num2: $power_num2 ... affecting:"; print_r($affecting);echo "

";



//echo "
aspect_orb: 
";print_r($aspect_orb);echo "
";



$aspect_string = $pl1." ".$aspect_name." ".$pl2;

$genders = $gender.$gender2;



$orb_slash_meaningful = $aspect_array['orb']."/".$aspect_array['meaningful_orb'];

//if owner is not there, don't show them on the line

$owner_str = " - $p1($owner1) - $p2($owner2) - ";

if($owner1==NULL) $owner_str=NULL;



/*Super Aspect (A Winner-Powerful, Unique, Creative) (Sun-Jupiter,Uranus,Neptune,Pluto Venus-Jupiter,Uranus,Neptune,Pluto,Chiron Jupiter-Pluto,Uranus,Neptune Uranus-Pluto Pluto-Chiron)

(power: 325) (1.67/10) (Sun-Conjunct-Jupiter)

$special_aspect_array = array();

*/

/*

[0]Super Aspect (A Winner-Powerful, Unique, Creative) (Sun-Jupiter,Uranus,Neptune,Pluto Venus-Jupiter,Uranus,Neptune,Pluto,Chiron Jupiter-Pluto,Uranus,Neptune Uranus-Pluto Pluto-Chiron)

[1]Sports Champion Aspect

*/



//-------------------------------------------------------

//----------ADD IN SPECIAL ASPECT INFO-------------------

//-------------------------------------------------------

$p3 = str_replace(" ","-",$aspect_string);

$counter_categories = 0;

//extra things to check for, that are needed for certain aspects

$p4 = $p3."|gender:$gender"; //gender specific aspects

$p5 = $p3."|directions:$directions"; //Bidirectional specific quincunx aspects

$p6 = $p3."|genders:$genders"; //gender specific aspects



//echo $p3."
";

foreach($array_of_special_aspects[$special_aspect_section] as $category_name => $planets_dashes_array){

//echo $category_name."
";

foreach($planets_dashes_array as $n => $pl_dash_pl){

//echo $pl_dash_pl."
";



//echo "p3: $p3 - pl_dash_pl: $pl_dash_pl
"; die();



if($p3 == $pl_dash_pl || $p4 == $pl_dash_pl || $p5 == $pl_dash_pl){



if(stristr($category_name, '(Luck)') == TRUE) $group="Luck";



if(stristr($category_name, '(Love)') == TRUE) $group="Love";



if(stristr($category_name, '(Sex)') == TRUE) $group="Sex";



if(stristr($category_name, '(Drama)') == TRUE) $group="Drama";



$blurb[$group][$p3][$category_name] = "       (power: $power) ($orb_slash_meaningful)".$owner_str;



#echo "
when adding power - to a category:

power: $power ... orb_slash_meaningful: $orb_slash_meaningful ... owner_str: $owner_str

";



//$blurb[$group][$p3][$category_name] = "       (power: $power) ($orb_slash_meaningful)".$owner_str;

/*if(isset($group)){

$save_category_name[$group][$counter_categories] = $category_name;

//echo "group: $group ... category_name: $category_name";die();

$counter_categories++;

}*/



}

}

}

//note if it has category(s) or not

if(isset($save_category_name)) $special_aspect_yes_no = "yes";

else $special_aspect_yes_no="no";



//CREATE SPECIAL ASPECT POWER with: Moses's Info

/*

'reality_full_strength_orb_magi'=>4.625,

'reality_half_strength_orb_magi'=>5.125,

'reality_quarter_strength_orb_magi'=>6.125,

*/

if (!isset($special_aspect_power)) $special_aspect_power = 0;

if($special_aspect_yes_no == "yes"){

$special_aspect_power = special_aspect_power($p1,$p2,$aspect_name,$orb,$aspect_orb,$power_of_planet,$power_of_orb,$power_of_aspect);

}



//echo "
save_category_name: $special_aspect_yes_no
";print_r($save_category_name);echo "
";die();

//-------------------------------------------------------

//----------end: ADD IN SPECIAL ASPECT INFO-------------------

//-------------------------------------------------------







//echo "
aspect_degree: 
";print_r($aspect_degree);echo "
";



$this_array = array('planet1'=>$pl1,'planet2'=>$pl2,'aspect'=>$aspect_name,'aspect_meaning'=>$aspect_definition[$aspect_name],'aspect_angle'=>$aspect_degree,'orb'=>$orb,'meaningful_orb'=>$meaningful_orb,'power_of_aspect'=>$power_of_aspect,'power_of_planets'=>$power_of_planets,'power_of_orb_max100'=>$power_of_orb,'bidirectional'=>$bidirectional,'double_retrograde'=>$double_retrograde,'power'=>$power_num,'powerb4_if_changed'=>$power_num2,'aspect_string'=>$aspect_string,$pl1=>$owner1,$pl2=>$owner2,'special_aspect'=>$special_aspect_yes_no);



#echo "

this_array

'planet1'=>$pl1 ... 'planet2'=>$pl2 ... 'aspect'=>$aspect_name ... 'aspect_meaning'=>$ aspect_definition[$ aspect_name] ... 'aspect_angle'=>$aspect_degree ... 'orb'=>$orb ... 'meaningful_orb'=>$meaningful_orb ... 'power_of_aspect'=>$power_of_aspect ... 'power_of_planets'=>$power_of_planets ... 'power_of_orb_max100'=>$power_of_orb ... 'bidirectional'=>$bidirectional ... 'double_retrograde'=>$double_retrograde ... 'power'=>$power_num ... 'powerb4_if_changed'=>$power_num2 ... 'aspect_string'=>$aspect_string ... $pl1=>$owner1 ... $pl2=>$owner2 ... 'special_aspect'=>$special_aspect_yes_no ... special_aspect_power: $special_aspect_power

";



if($save_category_name!=NULL){

$this_array['special_aspect_power'] = $special_aspect_power;

$this_array['special_aspect_array'] = $save_category_name;

}



/* if(isset($saved_aspects[$pl1][$aspect_string])){

echo "- already an aspect in for - $pl1 - $aspect_string
";

echo "
saved_aspects for it: 
";print_r($saved_aspects[$pl1][$aspect_string]);echo "
";

echo "
this_array: 
";print_r($this_array);echo "
";die();

}*/



$saved_aspects[$pl1][$aspect_string]=$this_array;

//echo "
saved_aspects: 
";print_r($saved_aspects);echo "
"; //die();





return $saved_aspects;

}









function sortArrayByField($original,$field,$descending = false){

$sortArr = array();



foreach ( $original as $key => $value ){

$sortArr[ $key ] = $value[ $field ];

}



if ( $descending ){

arsort( $sortArr );

}

else{

asort( $sortArr );

}



$resultArr = array();

foreach ( $sortArr as $key => $value ){

$resultArr[ $key ] = $original[ $key ];

}



return $resultArr;

}







//----

//BUILD HTML LISTING OF ASPECTS

//----

function html_listing_of_aspects_with_interpretations($saved_aspects,$aspect_data_folder){



//echo "
";print_r($saved_aspects);echo "
";die();

//$saved_aspects = sortArrayByField($saved_aspects,'power_sort_num', true);





foreach($saved_aspects as $first_planet => $aspects_array){

foreach($aspects_array as $aspect_full_name => $aspect_array){

$p1 = $aspect_array['planet1'];

$p2 = $aspect_array['planet2'];

$a = $aspect_array['aspect'];

$a_n = $aspect_array['aspect_angle'];

$o = $aspect_array['orb'];

$o_m = $aspect_array['meaningful_orb'];

$significance = $aspect_array['power'];

$meaning = $aspect_array['aspect_meaning'];

$bidirectional = $aspect_array['bidirectional'];

$double_retrograde = $aspect_array['double_retrograde'];



if($bidirectional!="bidirectional") $bidirectional=NULL;

else $bidirectional = " / bidirectional";

if($double_retrograde!="double_retrograde") $double_retrograde=NULL;

else $double_retrograde = " / double_retrograde";





$filename = "data/aspects/$aspect_data_folder/".strtolower($p1)."/".strtolower($p1." ".$a." ".$p2).".txt";

$interpretations = nl2br(file_get_contents($filename));

$i4 = explode("|",$interpretations);

$i=NULL;

for($z=0;$z<(count($i4)-1);$z++){

$i.= ($z+1)." ".$i4[$z];

$i.="
";

}

if($significance<0) $significance_color = "#a30d0d"; else $significance_color = "#1558ab";

$img_style = "style='vertical-align:top;padding:4px;'";

$img1 = "";

$img2 = "";

$aspects_list_html .= "

$img1$p1 $a $p2$img2 ($a: $a_n) (orb $o / ok-orb $o_m".$bidirectional.$double_retrograde." / significance: $significance)



Initial Meaning: $meaning



What It Means For You:      



$i

";

}



}





return $aspects_list_html;

}





function keep_only_certain_planets($array){

$planets_to_keep = array("Sun","Moon","Mercury","Venus","Mars","Jupiter","Saturn","Uranus","Neptune","Pluto","Chiron","Juno","Ceres","Pallas","Vesta","Eros","Amor","Lilith","Sappho","SaturnChironMidpoint");



//print_r($planets_to_keep);die();

foreach($array as $planet=> $value){

if(in_array($planet, $planets_to_keep)){

$array2[$planet] = $value;

}

}

return $array2;

}





function make_full_degrees_and_directions_arrays($data){ //add in the owner of the degree and what planet it is

$planets_to_keep = array("Sun","Moon","Mercury","Venus","Mars","Jupiter","Saturn","Uranus","Neptune","Pluto","Chiron","Juno","Ceres","Pallas","Vesta","Eros","Amor","Lilith","Sappho","SaturnChironMidpoint");



//echo "
data

";print_r($data);echo "
";die();





//-----------------------------------------------

//save whole degree info - per planet

foreach($data['planets'] as $planet => $planet_info){

if(in_array($planet,$planets_to_keep)==TRUE){

//DEGREES-FULL by planet

$degrees_full[$planet]=$planet_info['degrees_full'];

$directions[$planet]=$planet_info['direction'];

$owner_array_by_planet[$planet]=$data['name'];

}

else{

//echo "$planet not in array
";

}

}

//echo "
data['planets']

";print_r($data['planets']);echo "
";die();

//echo "
degrees_full

";print_r($degrees_full);echo "
";die();



$r=array('degrees_full'=>$degrees_full,'directions'=>$directions,'owner_of_these_planets'=>$owner_array_by_planet);



//echo "
r array

";print_r($r);echo "
";die();





return $r;

}









//organize by best aspects - make the array in final array 1st thing loop thru...

//at end re-organize aspects in each, by making the most powerful at top

//--do the same for synastry one--

function build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender_renamed,$owner_array_by_planet1,$owner_array_by_planet2,$gender,$gender2){



//echo "gender_renamed: gender_renamed / gender: $gender / gender2: $gender2"; die();

//echo "
special_aspect_section: $special_aspect_section...
";print_r($array_of_special_aspects);echo "
";die();



//--------------------------------------

//-------Single- ASPECTS arrays---------

//--------------------------------------

//ORB sizes, standard, and stretched

//http://www.skyscript.co.uk/aspectorbs.html

//USED FOR JOINT-planet ORBS



//ORB is max distance (add wiggle_room) for 2 planets

foreach($aspects_organized as $aspect => $array) $aspect_orb[$aspect] = $array['meaningful_orb'];



foreach($aspects_organized as $aspect => $array) $aspect_degrees[$aspect] = $array['degrees'];



foreach($aspects_organized as $aspect => $array) $aspect_definition[$aspect] = $array['definition'];



foreach($aspects_organized as $aspect => $array) $aspect_power[$aspect] = $array['power'];



//--------------------------------------

//-------Single- PLANET arrays----------

//--------------------------------------

$x=0;

foreach($planets_organized as $planet => $array){

$planets_order[$planet]=$array['order'];

$planets[$x]=$planet;

$x++;

}



foreach($planets_organized as $planet => $array) $orb_of_planet[$planet]=$array['planet_orb'];



foreach($planets_organized as $planet => $array) $power_of_planet[$planet]=$array['power'];



//---------------------------------------------------------------

//-----IMMEDIATE PSYCHOLOGICAL REALITY----------(not used yet)---

//---------------------------------------------------------------



//Psychologically Relevant - Aspects within 4 1/2 degrees

$orb_relevant = 4.625; //4 5/8



//When forming planetary geometry (T-Squares, Grand Trines, etc.), I'll use some higher orbs.

//Between 4 5/8 and 5 1/8 I think an aspect is at half strength.

$orb_half_strength = 5.125;

//And between 5 1/8 and 6 1/8 degrees i think an aspect is at about 1/4 strength.

$orb_quarter_strength = 6.125;

//An orb between 6 and 8 or 10 degrees seems true in a general, overall sense, but not as a very powerful psychological reality.



//http://astrologyforthesoul.com/moses/aspcturbz.html

$wiggle_room_orbs = 15;



//----------------------------------------------------------





//------------------------------------------------------------

$aspect_array['aspects'] = $aspects_organized; //'Conjunct'=>array('class','degrees','meaningful_orb','power','definition')

$aspect_array['aspect_orb'] = $aspect_orb; //by ['aspect_name']

$aspect_array['aspect_degrees'] = $aspect_degrees;

$aspect_array['aspect_definition'] = $aspect_definition;

$aspect_array['aspect_power'] = $aspect_power;

//---

$aspect_array['planets'] = $planets; //'order'=>14,'planet_orb'=>5,'power'=>5,

$aspect_array['planets_order'] = $planets_order; //by ['planet']

$aspect_array['orb_of_planet'] = $orb_of_planet;

$aspect_array['power_of_planet'] = $power_of_planet;

//---

$aspect_array['orb_relevant'] = $orb_relevant; //4.625

$aspect_array['orb_half_strength'] = $orb_half_strength; //5.125

$aspect_array['orb_quarter_strength'] = $orb_quarter_strength; //6.125

$aspect_array['wiggle_room_orbs'] = $wiggle_room_orbs; //15 - add this to find stuff

//------------------------------------------------------------



$saved_aspects = array();

$aspects_list_html = "

";

//echo $aspects_list_html;



foreach($degrees_full as $your_planet => $first_planet_deg360){

//echo "$planet (d1 $d1)
";

foreach($planets as $one_of_the_planet_names){

//don't compare the planet to itself

if($one_of_the_planet_names!=$your_planet){

$second_planet_deg360 = $degrees_full[$one_of_the_planet_names];

$direction1 = $directions[$your_planet];

$direction2 = $directions[$one_of_the_planet_names];

//echo "

aspect_degrees: 
";print_r($aspect_degrees);echo "
";

$difference_degs_of_planets = get_lesser_difference_360($first_planet_deg360,$second_planet_deg360);



foreach($aspect_degrees as $aspect_name => $aspect_deg){

//$check becomes the orb number in case of an aspect found

//or it's NULL

$check = check_for_aspect_single_comparison($aspect_name,$your_planet,$first_planet_deg360,$one_of_the_planet_names,$second_planet_deg360,$aspect_array,$difference_degs_of_planets);



//echo "aspect_name: $aspect_name - aspect_deg: $aspect_deg -- planet1: $your_planet - planet2: $one_of_the_planet_names - $difference_degs_of_planets degs away - (with an orb of $check)
";

//if($one_of_the_planets == "Mercury") die();



//echo "        ->$aspect_name ($aspect_deg) ... $apsect_deg degs away - (with an orb of $check)
"; //die();



if ($check != NULL){

//echo "
check: 
";print_r($check);echo "
";die();



//echo "aspect_name: $aspect_name - aspect_deg: $aspect_deg -- planet1: $your_planet - planet2: $one_of_the_planet_names - $difference_degs_of_planets degs away - (with an orb of $check)
";



//remove duplicates by saving them a certain way

$saved_aspects = insert_aspect_into_saved_array($saved_aspects,$your_planet,$aspect_name,$aspect_orb,$one_of_the_planet_names,$check,$aspect_deg,$planets_order,$power_of_planet,$direction1,$direction2,$aspect_power,$aspect_definition,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);

}



//if( ($d2>=$min) && ($d2<=$max) ) $echo "        $planet [$d1] ($a) $p [$d2] ... min: $min ... max: $max
";

}



}

}

}

//echo "
saved_aspects
";print_r($saved_aspects);echo "
";die();



return $saved_aspects;

}













function build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender){



//--------------------------------------

//-------Single- ASPECTS arrays---------

//--------------------------------------

//ORB sizes, standard, and stretched

//http://www.skyscript.co.uk/aspectorbs.html

//USED FOR JOINT-planet ORBS



//ORB is max distance (add wiggle_room) for 2 planets

foreach($aspects_organized as $aspect => $array) $aspect_orb[$aspect] = $array['meaningful_orb'];



foreach($aspects_organized as $aspect => $array) $aspect_degrees[$aspect] = $array['degrees'];



foreach($aspects_organized as $aspect => $array) $aspect_definition[$aspect] = $array['definition'];



foreach($aspects_organized as $aspect => $array) $aspect_power[$aspect] = $array['power'];



//echo "
aspect_power
";print_r($aspect_power);echo "
";

//die();





/*//names

echo "LIST OF ASPECT NAMES: --
";

foreach($aspects_organized as $aspect => $array) echo "$aspect,";

//Conjunct,Opposed,Trine,Sextile,Septile,Square,Semisextile,Quintile,Semiquintile,Biquintile,Semisquare,Sesquisquare,Quincunx,Novile,

*/



//--------------------------------------

//-------Single- PLANET arrays----------

//--------------------------------------

$x=0;

foreach($planets_organized as $planet => $array){

$planets_order[$planet]=$array['order'];

$planets[$x]=$planet;

$x++;

}



foreach($planets_organized as $planet => $array) $orb_of_planet[$planet]=$array['planet_orb'];



foreach($planets_organized as $planet => $array) $power_of_planet[$planet]=$array['power'];



//---------------------------------------------------------------

//-----IMMEDIATE PSYCHOLOGICAL REALITY----------(not used yet)---

//---------------------------------------------------------------



//Psychologically Relevant - Aspects within 4 1/2 degrees

$orb_relevant = 4.625; //4 5/8



//When forming planetary geometry (T-Squares, Grand Trines, etc.), I'll use some higher orbs.

//Between 4 5/8 and 5 1/8 I think an aspect is at half strength.

$orb_half_strength = 5.125;

//And between 5 1/8 and 6 1/8 degrees i think an aspect is at about 1/4 strength.

$orb_quarter_strength = 6.125;

//An orb between 6 and 8 or 10 degrees seems true in a general, overall sense, but not as a very powerful psychological reality.



//http://astrologyforthesoul.com/moses/aspcturbz.html

$wiggle_room_orbs = 15;



//----------------------------------------------------------





//------------------------------------------------------------

$aspect_array['aspects'] = $aspects_organized; //'Conjunct'=>array('class','degrees','meaningful_orb','power','definition')

$aspect_array['aspect_orb'] = $aspect_orb; //by ['aspect_name']

$aspect_array['aspect_degrees'] = $aspect_degrees;

$aspect_array['aspect_definition'] = $aspect_definition;

$aspect_array['aspect_power'] = $aspect_power;

//---

$aspect_array['planets'] = $planets; //'order'=>14,'planet_orb'=>5,'power'=>5,

$aspect_array['planets_order'] = $planets_order; //by ['planet']

$aspect_array['orb_of_planet'] = $orb_of_planet;

$aspect_array['power_of_planet'] = $power_of_planet;

//---

$aspect_array['orb_relevant'] = $orb_relevant; //4.625

$aspect_array['orb_half_strength'] = $orb_half_strength; //5.125

$aspect_array['orb_quarter_strength'] = $orb_quarter_strength; //6.125

$aspect_array['wiggle_room_orbs'] = $wiggle_room_orbs; //15 - add this to find stuff

//------------------------------------------------------------



$saved_aspects = array();

$aspects_list_html = "

";

//echo $aspects_list_html;



//VARS: $degrees_full1,$directions1,$degrees_full2,$directions2



foreach($degrees_full1 as $your_planet => $first_planet_deg360){

//echo "$planet (d1 $d1)
";

foreach($planets as $one_of_the_planet_names){

//don't compare the planet to itself

if($one_of_the_planet_names!=$your_planet){

$second_planet_deg360 = $degrees_full2[$one_of_the_planet_names];

$direction1 = $directions1[$your_planet];

$direction2 = $directions2[$one_of_the_planet_names];

//echo "

aspect_degrees: 
";print_r($aspect_degrees);echo "
";

$difference_degs_of_planets = get_lesser_difference_360($first_planet_deg360,$second_planet_deg360);



foreach($aspect_degrees as $aspect_name => $aspect_deg){

//$check becomes the orb number in case of an aspect found

//or it's NULL

$check = check_for_aspect_single_comparison($aspect_name,$your_planet,$first_planet_deg360,$one_of_the_planet_names,$second_planet_deg360,$aspect_array,$difference_degs_of_planets);



//echo "aspect_name: $aspect_name - aspect_deg: $aspect_deg -- planet1: $your_planet - planet2: $one_of_the_planet_names - $difference_degs_of_planets degs away - (with an orb of $check)
";

//if($one_of_the_planets == "Mercury") die();



//echo "        ->$aspect_name ($aspect_deg) ... $apsect_deg degs away - (with an orb of $check)
"; //die();



if ($check != NULL){

//echo "
check: 
";print_r($check);echo "
";die();



//echo "aspect_name: $aspect_name - aspect_deg: $aspect_deg -- planet1: $your_planet - planet2: $one_of_the_planet_names - $difference_degs_of_planets degs away - (with an orb of $check)
";







//remove duplicates by saving them a certain way

$saved_aspects = insert_aspect_into_saved_array($saved_aspects,$your_planet,$aspect_name,$aspect_orb,$one_of_the_planet_names,$check,$aspect_deg,$planets_order,$power_of_planet,$direction1,$direction2,$aspect_power,$aspect_definition,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo "
saved_aspects
";print_r($saved_aspects);echo "
";die();



}



//if( ($d2>=$min) && ($d2<=$max) ) $echo "        $planet [$d1] ($a) $p [$d2] ... min: $min ... max: $max
";

}



}

}

}

return $saved_aspects;

}



function build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects){

//----

//BUILD SUMMARY OF ASPECTS

//----

$aspects_summary = NULL;

$aspects_summary_html = NULL;



foreach($saved_aspects as $planet => $aspect_array){

foreach($aspect_array as $aspect_planets => $aspect_array){

$specific_aspect = $aspect_array['aspect'];

if(!isset($counter[$specific_aspect])) $counter[$specific_aspect]=0;

else $counter[$specific_aspect]++;

$c0=$counter[$specific_aspect];

//save info to summary variable array

$aspects_summary[$specific_aspect][$c0] = $aspect_array;

//save title phrased like "Sun Conjunct Moon"

$aspects_summary[$specific_aspect][$c0]['aspect_title'] = $aspect_planets;

}

}



/*echo "
aspects_summary
";

print_r($aspects_summary);

echo "
";

*/

$aspects_summary_positive_html = NULL;

$aspects_positive_numbers = 0;

$aspects_summary_negative_html = NULL;

$aspects_positive_numbers = 0;



foreach($aspects_summary as $aspect => $num_array){

foreach($num_array as $num => $aspect_array){

$p1 = $aspect_array['planet1'];

$p2 = $aspect_array['planet2'];

$a = $aspect_array['aspect'];

$power = round($aspect_array['power'],0);

if($power>0){

if($num==0){

//add header for aspect

$aspects_summary_positive_html.="$a
";

}

$aspects_summary_positive_html.="$p1 $p2 ($power)
";

$aspects_positive_numbers += $power;

}

else{

if($num==0){

//add header for aspect

$aspects_summary_negative_html.="$a
";

}

$aspects_summary_negative_html.="$p1 $p2 ($power)
";

$aspects_negative_numbers += $power;

}



//Each Individual Aspect...



/*echo "
";

print_r($aspect_array);

echo "
";*/

}

}

$pos = $aspects_positive_numbers;

$neg = $aspects_negative_numbers;

$ratio = round($pos/($neg*-1),2);



$aspects_summary_positive_html = "Positives: $pos

".$aspects_summary_positive_html;

$aspects_summary_negative_html = "Challenges: $neg

".$aspects_summary_negative_html;

$total = $pos + $neg;





$html = "









$aspects_summary_positive_html

$aspects_summary_negative_html

Ratio: $ratio

Total: $total



";



return $html;

}











function make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2){

error_reporting(1);



//echo "
owner_of_these_planets1
"; print_r($owner_array_by_planet1);echo "
";

//echo "
owner_of_these_planets2
"; print_r($owner_array_by_planet2);echo "
"; die();



//echo "
"; print_r($array_of_special_aspects);echo "
";

//echo "
saved_aspects
";print_r($saved_aspects);echo "
";die();



//foreach($array_of_special_aspects as $some){ echo "
";  print_r($some); echo "
";die(); }



$genders = $gender.$gender2;



$blurb['intro'] = "Saved Aspect Boxes (gender: $gender | genders: $genders) - $special_aspect_section
";

foreach($saved_aspects as $ordered_by_planet => $planets_aspect_array){

foreach ($planets_aspect_array as $aspect_title => $aspect_array){

$p1 = $aspect_array['planet1'];

$p2 = $aspect_array['planet2'];



$a = $aspect_array['aspect'];

$orb_slash_meaningful = $aspect_array['orb']."/".$aspect_array['meaningful_orb'];

if(!isset($aspect_array['special_aspect_power'])) $power = $aspect_array['power'];

else $power = $aspect_array['special_aspect_power'];

//echo "
aspect_array
"; print_r($aspect_array); echo "
"; die();

if($aspect_array['bidirectional']!="normal") $directions = "Bidirectional";

else $directions = NULL; //Normal or Both_retrograde or Bidirectional

$p3 = "$p1-$a-$p2";

//echo "[$p1] [$aspect_title] [$p1]";die(); //[Sun] [Sun Quincunx Venus] [Sun]

$owner1 = $aspect_array[$p1];

$owner2 = $aspect_array[$p2];

//if owner is not there, don't show them on the line

$owner_str = " - $p1($owner1) - $p2($owner2) - ";

if($owner1==NULL) $owner_str=NULL;

//extra things to check for, that are needed for certain aspects

$p4 = $p3."|gender:$gender"; //gender specific aspects

$p5 = $p3."|directions:$directions"; //Bidirectional specific quincunx aspects

$p6 = $p3."|genders:$genders"; //gender specific aspects

//echo $p3."
";

foreach($array_of_special_aspects[$special_aspect_section] as $category_name => $planets_dashes_array){

//echo $category_name."
";

foreach($planets_dashes_array as $n => $pl_dash_pl){

//echo $pl_dash_pl."
";

if($p3 == $pl_dash_pl || $p4 == $pl_dash_pl || $p5 == $pl_dash_pl || $p6 == $pl_dash_pl){



if(stristr($category_name, '(Luck)') == TRUE) $group="Luck";



if(stristr($category_name, '(Love)') == TRUE) $group="Love";



if(stristr($category_name, '(Sex)') == TRUE) $group="Sex";



if(stristr($category_name, '(Drama)') == TRUE) $group="Drama";



$blurb[$group][$p3][$category_name] = "       (power: $power) ($orb_slash_meaningful)".$owner_str;



//echo "$ blurb[$ group][$ p3][$ category_name]".$blurb[$group][$p3][$category_name]."
";die();



//if($name1==NULL){ echo "
aspect_array
"; print_r($aspect_array);echo "
"; echo "
blurb
"; print_r($blurb);echo "
"; die(); }





}

}

}

//$blurb.= "$p1 $a $p2 - $special
";

}

}



return $blurb;





}





function aspect_box_groups_html($aspect_boxes){

//----------------------------------------------

//make a bigger foreach, and re-write to save all to new html_array, under 1st's grouping

//seperate divs per group, width 250,
between entries, wordy part on left, powers on right

foreach($aspect_boxes as $group => $title_array){



foreach($title_array as $aspect_planets_title => $result_str_or_array){



//first line of the stuff, gender, name

if(!is_array($result_str_or_array)){

//$boxes .= $result_str_or_array."
";

}

else{ //planet aspect stuff



foreach($result_str_or_array as $magic_aspect_title => $result){

//set category first off

if(!isset($boxes[$group])) $boxes[$group] = "$group

";

//save the title and info and power

$boxes[$group] .= "
$magic_aspect_title
$result   ($aspect_planets_title)
";

//show rest of aspects



}

//$boxes .= "
";

}



}

}



//echo "
boxes:
";print_r($boxes);echo "
";

/*

$final_html = "




Highlight Reel (of Your Aspects)
list of all of your aspects | what they all mean
";



$final_html .= "";

foreach($boxes as $a_box) $final_html .= "
$a_box
";

$final_html .= "
";

return $final_html;

*/

}





error_reporting(1);



function friend_or_romantic_buttons($gender1,$gender2){

$id=$_GET['id'];

$person2=$_GET['person2'];

$report = $_GET['report'];

$section = $_GET['section'];



if(isset($_GET['mode'])){

$mode = $_GET['mode'];

//if they make a change, remember it, save to person/friend/person2.txt (for the friend) so it will keep them that way

//check if it's different from the currently saved friend's mode

//if pref in friends/id/friend's text file-set mode

//if absent, obviously that's different



//write it in

}

else{

//it wasn't in GET, so choose it



//if pref in friends/id/friend's text file-set mode

//get it



//else-add in check on both genders

$g = get_2_genders($id,$person2);

$gender1 = $g['gender1'];

$gender2 = $g['gender2'];



if($gender1==$gender2) $mode="friends";

else $mode='romantic'; //default is romantic 4 diff sex

//echo "mode: $mode ... gender1: $gender1 - gender2: $gender2
";

}







$link="cosmic_compatibility_info.php?id=$id&person2=$person2&report=$report§ion=$section";



if($mode=='romantic'){

$mode1="Possibly Romantic";

$mode2 = "Just Friends";

}

else{

$mode1 = "Just Friends";

$mode2="Possibly Romantic";

}







$div = "


Change View: $mode1 or $mode2

";



return $div;

}





//-----------------------------------------------------------------

//-----------------------------------------------------------------



//pass genders to 'make_special_aspect_boxes'

if(isset($_GET['id']) && isset($_GET['person2'])){

$g = get_2_genders($_GET['id'],$_GET['person2']);

$gender1 = $g['gender1'];

$gender2 = $g['gender2'];

}

else {

$gender1 = $gender;

$gender2 = NULL;

}





















if($_GET['report']=='The-Initial-Compatibility'){



$special_aspect_section='synastry';





# YOU



$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key1]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



#echo "
data1: 
"; print_r($data1); echo "
--
";





# THEM



$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key2]);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



#echo "
data2: 
"; print_r($data2); echo "
--
";



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */







# SYNASTRY

# YOU & THEM





$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender1);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...



//echo "
"; print_r($saved_aspects);echo "
";



$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);





//echo $birthchart_summary_table."
"; //made in session_start





}

















if($_GET['report']=='The-Potiential-Relationship'){

//echo "$gender,$gender2";die();





# SELF





$special_aspect_section='self';



#echo "
composite - potiential: $ _SESSION[$ joint_id]['composite']
";print_r($_SESSION[$joint_id]['composite']);echo "
--
"; die();





# YOU/THEM - MIDPOINTS (composite)





$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

//if(isset($_GET['show_something'])){ echo "
composite - potiential: data1
";print_r($data1);echo "
--
"; die();}

echo "
composite - potiential: data1
";print_r($data1);echo "
--
"; die();





$degrees_full = $data1['degrees_full'];

$directions = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */

//if(isset($_GET['show_something'])){ echo "
composite - potiential: saved_aspects (".count($saved_aspects).")
";print_r($saved_aspects);echo "
--
"; die();}



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);

//if(isset($_GET['show_something'])){ echo "
composite - potiential: aspect_boxes
";print_r($aspect_boxes);echo "
--
"; die();}

//echo "
aspect_boxes

";print_r($aspect_boxes);echo "
";die();



//echo $birthchart_summary_table."
"; //made in session_start



$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}





















if($_GET['report']=='How-The-Relationship-Affects-You'){



# HOW the midpoints - the potiential composite - to You



# COMPOSITE (MIDPOINTS)







# SELF





# joint_id - composite1 - YOU

# COMPOSITE (MIDPOINTS)



$special_aspect_section='self';

$data4 = $_SESSION[$joint_id]['composite1'];

$summary_table_composite = $_SESSION[$joint_id]['summary_table_composite1'];

$data_1 = make_full_degrees_and_directions_arrays($data4);

//echo "
data_1
"; print_r($data_1); echo "
"; die();





# YOU





$degrees_full = $data_1['degrees_full'];

$directions = $data_1['directions'];

$owner_array_by_planet1 = $data_1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

//echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; die();



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);





//echo "
aspect_boxes

";print_r($aspect_boxes);echo "
";die();

//echo $birthchart_summary_table."
"; //made in session_start

$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite1";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}





















if($_GET['report']=='How-The-Relationship-Affects-Them'){



# HOW the midpoints - the potiential composite - to Them





# SELF







$special_aspect_section='self';





# joint_id - composite2 - THEM

# COMPOSITE (MIDPOINTS)





$data5 = $_SESSION[$joint_id]['composite2'];

$summary_table_composite = $_SESSION[$joint_id]['summary_table_composite2'];

$data1 = make_full_degrees_and_directions_arrays($data5);

$degrees_full = $data1['degrees_full'];

$directions = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="Composite";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */





# NOT SYNASTRY - SELF





$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'composite');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo $birthchart_summary_table."
"; //made in session_start

$forecast_str_specific_id_for_this_composite_in_session = "$joint_id-----composite2";

$forecast_date = (int)date('m')."/".(int)date('d')."/".date('Y');



}

















if($_GET['report']=='How-You-Feel-About-It'){



$special_aspect_section='synastry';





# YOU - joint_id - key1



$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key1]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



foreach($owner_array_by_planet1 as $key => $value) $owner_array_by_planet1[$key]="You";

//echo "
owner_array_by_planet1: 
";print_r($owner_array_by_planet1);echo "
--
"; die();







//Change the Composite Name to Composite, so I can see it in the aspects results, for a certain planet

$tmp_name = $data3['name'];

$data3['name']="Composite";







# IT - joint_id - composite

# MIDPOINTS FOR BOTH - COMPOSITE / POTIENTIAL RELATIONSHIP

# THE POTIENTIAL - COMPOSITE





$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */





# SYNASTRY





$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender);

//echo "
composite - potiential: saved_aspects (".count($saved_aspects).")
";print_r($saved_aspects);echo "
--
"; die();

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);







//echo $birthchart_summary_table."
"; //made in session_start

$data3['name']=$tmp_name;



}





















if($_GET['report']=='How-They-Feel-About-It'){



$special_aspect_section='synastry';



//Change the Composite Name to Composite, so I can see it in the aspects results, for a certain planet

$tmp_name = $data3['name'];

$data3['name']="Composite";





# THEM - joint_id - key2





$data1 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id][$key2]);

$degrees_full1 = $data1['degrees_full'];

$directions1 = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];





# IT - joint_id - composite

# MIDPOINTS FOR BOTH - COMPOSITE / POTIENTIAL RELATIONSHIP

# THE POTIENTIAL - COMPOSITE





$data2 = make_full_degrees_and_directions_arrays($_SESSION[$joint_id]['composite']);

$degrees_full2 = $data2['degrees_full'];

$directions2 = $data2['directions'];

$owner_array_by_planet2 = $data2['owner_of_these_planets'];



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */





# SYNASTRY





$saved_aspects = build_saved_aspects_array_synastry($aspects_organized,$planets_organized,$degrees_full1,$directions1,$degrees_full2,$directions2,$owner_array_by_planet1,$owner_array_by_planet2,$array_of_special_aspects,$special_aspect_section,$gender);

/*echo "
saved_aspects
"; print_r($saved_aspects); echo "
"; */



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/





$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'synastry');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo $birthchart_summary_table."
"; //made in session_start

$data3['name']=$tmp_name;



}









//report=Your-Cosmic-Rating

if($_GET['report']=='Specifically-You' || $_GET['report']=='Your-Cosmic-Rating'){



$special_aspect_section='self';



$data1 = make_full_degrees_and_directions_arrays($data);

#

#echo "
data1

";print_r($data1);echo "
";

#die();



$degrees_full = $data1['degrees_full'];

$directions = $data1['directions'];

$owner_array_by_planet1 = $data1['owner_of_these_planets'];



echo "
data1: planets: 
"; print_r($data1); echo "
--
";



/*echo "
degrees_full
"; print_r($degrees_full); echo "
--
";

echo "
directions: 
";print_r($directions);echo "
--
"; */



$saved_aspects = build_saved_aspects_array($aspects_organized,$planets_organized,$degrees_full,$directions,$array_of_special_aspects,$special_aspect_section,$gender,$owner_array_by_planet1,$owner_array_by_planet1,$gender,$gender2);

//echo "
saved_aspects

"; print_r($saved_aspects); echo "
";



$aspects_summary_html = build_header_summary_html_of_aspects_with_ratio_and_total($saved_aspects);

/* echo "
aspects_summary
"; print_r($aspects_summary_html); echo "
";*/



$aspects_list_html = html_listing_of_aspects_with_interpretations($saved_aspects,'self');

//looks like we can also use ASPECTS to compare the 12 signs, not only using just the degrees.

//CONTRAST: Aries/Leo signs (Trine) ... Aries 29/Leo 1 (Square)

//different, and it may prove USEFUL? maybe...

$aspect_boxes = make_special_aspect_boxes($saved_aspects,$array_of_special_aspects,$special_aspect_section,$gender,$gender2);



//echo $birthchart_summary_table."
"; //made in session_start



}



//$aspect_boxes['Sex'][Sun-Trine-Juno][desc][power orb - pl1(owner1) - pl2(owner2)]

//

function magic_boxes($aspects){

$lines = NULL;



/*echo "
aspects - 
";

print_r($aspects);

echo "
";*/



foreach($aspects as $aspect_name_w_planets => $titlearray){



/*echo "
aspects - 
";

print_r($aspects);

echo "
";*/





//titlearray is Drama, Sex, Love, or Luck

//aspect_name_w_planets is Venus-Opposed-Chiron

$a3 = explode("-",$aspect_name_w_planets);

$aspect_name = $a3[1];

//aspect_name is just the aspect name



foreach($titlearray as $description=>$power_orb_owner){

//description is Reluctance to Commit (Uranus-Chiron) (Drama)

//power_orb_owner is (power: 314) (0.06/3) - Uranus(Miriam) - Chiron(Michael)

$p4 = explode(" - ",$power_orb_owner);

$pl1ex = explode("(",$p4[1]);

$planet1 = $pl1ex[0];

$name1 = str_replace(")","",$pl1ex[1]);

$pl2ex = explode("(",$p4[2]);

$planet2 = $pl2ex[0];

$name2 = str_replace(")","",$pl2ex[1]);

$power_orb = explode(") (",$p4[0]);

$power = strip_tags(str_replace("  ","",str_replace("(power: ","",$power_orb[0])));

//$orb_slash_maxorb = str_replace(")","",$power_orb[1]);

//store array with [0]...[1]... $name1,$planet1,$aspect_name,$name2,$planet2,$description,$power

if(!isset($x)) $x=0;

if(!isset($power_total)) $power_total=0;

$magic[$x] = array('name1'=>$name1,'planet1'=>$planet1,'aspect_name'=>$aspect_name,'name2'=>$name2,'planet2'=>$planet2,'description'=>$description,'power'=>$power);

//----------------------------------------------------------------

//Names and Planets are not showing up

/*if($name1==NULL){

echo "
$ magic[$ x] - 
";

print_r($magic[$x]);

echo "
";die();



}*/

//----------------------------------------------------------------



//echo "DRAMA: ($x) $name1's $planet1 $aspect_name $name2's $planet2 - MEANS: $description - POWER: $power
";

//$lines .= "($name1)$planet1 $aspect_name ($name2)$planet2 - $description - $power
";

if($power<0) $power = $power*-1;

$aspect_title = "$planet1-$aspect_name-$planet2";

if(!isset($already_saved_once[$aspect_title])){

$already_saved_once[$aspect_title]=$aspect_title;

$lines[$aspect_title] = "
$aspect_title
$power
* $description - $planet1 ($name1) - $planet2 ($name2)
";

$power_total += $power;

}

else{

//add this description onto the end of prev one

$div_descr_ending = "
";

//remove ending, add div 4 next description ... then add ending back

$lines[$aspect_title] = str_replace($div_descr_ending,"",$lines[$aspect_title])."
* $description

$div_descr_ending";

}

$x++;

}

}

//** organize by highest power 1st **

//echo "
magic - DRAMA: 
"; print_r($magic); echo "
";



//re-set-up the single string of div lines

foreach($lines as $n => $line) $lines2 .= $line;

$total_num_of_aspects = count($lines);



return array($lines2,$power_total,$total_num_of_aspects);

}





//-------------------------------------------------

//-------------------------------------------------

$magic_divider = 170;

//self

if($_GET['report']=='Specifically-You' || $_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='Your-Cosmic-Rating'){

$luck_cap = 5;

$sex_cap = 5;

$love_cap = 3;

$drama_cap = 5;

}

elseif($_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

$luck_cap = 5;

$sex_cap = 5;

$love_cap = 2;

$drama_cap = 4;

}

/*if($_GET['report']=='Specifically-You' || $_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='Your-Cosmic-Rating' || $_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

$luck_cap = 6;

$sex_cap = 6;

$love_cap = 6;

$drama_cap = 7;

}*/

else{

//synastry

$luck_cap = 9;

$sex_cap = 9;

$love_cap = 9;

$drama_cap = 12;

}







//css for the divs

$magic_css = "

";



//magic_boxes($aspect_boxes['Luck']);

$magic = magic_boxes($aspect_boxes['Luck']);

$lines= $magic[0];

$total_luck = round($magic[1]/$magic_divider/$luck_cap*100,0);

$number_of_aspects = $magic[2];

$color_luck = "green";



$lines_luck = "



 






$lines







 


 


$total_luck%

$number_of_aspects Aspect(s)




";



//magic_boxes($aspect_boxes['Sex']);

$magic = magic_boxes($aspect_boxes['Sex']);

$lines= $magic[0];

$total_sex = round($magic[1]/$magic_divider/$sex_cap*100,0);

$number_of_aspects = $magic[2];

$color_sex = "#b20000";



$lines_sex = "



 






$lines







 


 


$total_sex%

$number_of_aspects Aspect(s)




";



//magic_boxes($aspect_boxes['Love']);

$magic = magic_boxes($aspect_boxes['Love']);

$lines= $magic[0];

$total_love = round($magic[1]/$magic_divider/$love_cap*100,0);

$number_of_aspects = $magic[2];

$color_love = "#a30067";



$lines_love = "



 






$lines







 


 


$total_love%

$number_of_aspects Aspect(s)




";



//magic_boxes($aspect_boxes['Drama']);

$magic = magic_boxes($aspect_boxes['Drama']);

$lines= $magic[0];

$total_drama = round($magic[1]/$magic_divider/$drama_cap*100,0);

$number_of_aspects = $magic[2];

$color_drama = "#d45c03";



$lines_drama = "



 






$lines







 


 


$total_drama%

$number_of_aspects Aspect(s)




";



$magic_div_start_luck = "
";

$magic_div_start_sex = "
";

$magic_div_start_love = "
";

$magic_div_start_drama = "
";

$magic_div_start = "
";

$magic_div_end = "
";

$magic_total_divs = "
 


 
$magic_div_start_luck $total_luck% $magic_div_end $magic_div_start_sex $total_sex% $magic_div_end $magic_div_start_love $total_love% $magic_div_end $magic_div_start_drama $total_drama% $magic_div_end";

//$magic_totals = "$total_sex - $total_love - $total_luck - $total_drama";





$magic_img_boxes = "$lines_luck - $lines_sex - $lines_love - $lines_drama";

$magic_totals = "$total_luck - $total_sex - $total_love - $total_drama";



$magic_summary = "$magic_css



$magic_total_divs

";

//-------------------------------------------------

//-------------------------------------------------







//-------------------------------------

//--------DISPLAY STUFF----------------

//-------------------------------------





if(stristr($_GET['id'],'_')==TRUE && count_times_char_in_string($_GET['id'],"_")<4) echo "";





if($_GET['report']=='The-Potiential-Relationship' || $_GET['report']=='How-The-Relationship-Affects-You' || $_GET['report']=='How-The-Relationship-Affects-Them'){

echo "
";

//echo "
";

echo $summary_table_composite."
";

//echo "
";

}

else{

if( ($_GET['report']=='Specifically-You' && $_GET['section']!='aspects-of-your-personality' ) || ($_GET['report']=='Your-Cosmic-Rating' && $_GET['section']!='aspects-of-your-personality' ) ){

echo $summary_table."
";

}

}

//------------------------

//View Compatibility With - Link

//------------------------

if($_GET['report']=='Specifically-You' || $_GET['report']=='Your-Cosmic-Rating'){

$you = $_SESSION['logged_in']['key'];

$them = $_GET['id'];



if($you!=NULL) echo compatibility_box($you,$them);



}

else {

//switch between friend or possibly romantic

//echo $friend_or_romantic_buttons = friend_or_romantic_buttons($gender1,$gender2);

}



//----------------------------------------------------------------

// DEPENDS ON Which section - rate / or/ aspects

//----------------------------------------------------------------





if( ($_GET['section']=='your-6-part-relationship-analysis' || $_GET['section']=='aspects-of-your-personality' ) && $_GET['report']!='Specifically-You'){

echo $magic_summary.$magic_img_boxes;

}

else{

//if($_GET['section']=='aspects-of-your-relationship' || $_GET['section']=='aspects-of-your-personality') {



//----------------------------------------------



//



echo "




All Aspects List   ";?>

what they all mean

";



//show hide

//

echo '';











//echo aspect_box_groups_html($aspect_boxes);



//aspect interpretations

echo "




All Aspects Meanings
";



echo $aspects_list_html;



}









Loop Functions - Code


!! Best Pl-2-Pl Array and Loop Functions





What is the best way to represent an array of planet-to-planet aspects, to be optimized? The very least comment I will need is 1 of 4 words, Luck, Love, Sex, Drama, and all of the aspects have one (a couple have 2 labels) on them



To optimize the representation of an array of planet-to-planet aspects with associated labels, you can consider using a multidimensional associative array. Here's an example structure:





$aspects = array( 'Sun' => array( 'Moon' => 'Love', 'Mercury' => 'Luck', 'Venus' => 'Love', // ... other planet-to-planet aspects involving the Sun ), 'Moon' => array( 'Mercury' => 'Drama', 'Venus' => array('Love', 'Sex'), // Multiple labels for one aspect // ... other planet-to-planet aspects involving the Moon ), // ... other planets and their aspects );



In this structure, each planet is a key in the main associative array, and its value is another associative array representing the aspects with other planets. The aspect labels ('Luck', 'Love', 'Sex', 'Drama') are stored as values associated with the corresponding planet pairs.

By organizing the aspects in this way, you can easily access and retrieve the labels based on the planet pairs. It allows for efficient searching and retrieval of the aspect labels during your compatibility analysis.

You can further optimize this structure by grouping similar aspects together or using numeric keys if you have a large number of planet pairs. Additionally, you can leverage binary search or other efficient searching algorithms to quickly locate specific aspects within the array.

Remember to consider the memory usage and trade-offs when designing the data structure, as the size of the array and the number of aspects can impact performance.



So by planet 1, and then the remaining planets under it. Then the next planet and those under it. That would be similar in structure to looping in the birthchart arrays. Is that why you said that?



Yes, that's correct! By organizing the aspects in a structure where each planet is a key and its associated aspects are stored as values, you create a hierarchical relationship that mirrors the looping process in the birthchart arrays.

When you loop through the birthchart arrays, you can iterate over each planet and access its associated aspects by referring to the corresponding sub-array in the aspects structure. This hierarchical organization allows for efficient traversal and retrieval of the aspects for each planet.

By structuring the data in a way that aligns with the looping process, you can simplify your code and make it more intuitive to work with the birthchart arrays and their associated aspects.



Now we also need to include the angle between the 2 planets. So what would be the best way to represent an array of planet-AngleName-planet - aspects, to be optimized? I need 1 word of a label, like Luck, Love, Sex, Drama



To represent an array of planet-angle-planet aspects, you can use a nested associative array structure. Here's an example of how it could be organized:





$aspects = array( 'PlanetA' => array( 'Angle1' => array( 'PlanetB' => 'Label1', 'PlanetC' => 'Label2', // ... ), 'Angle2' => array( 'PlanetD' => 'Label3', 'PlanetE' => 'Label4', // ... ), // ... ), 'PlanetB' => array( 'Angle1' => array( 'PlanetC' => 'Label5', 'PlanetD' => 'Label6', // ... ), 'Angle2' => array( 'PlanetE' => 'Label7', 'PlanetF' => 'Label8', // ... ), // ... ), // ... );



In this structure, the outermost array represents the first planet ('PlanetA', 'PlanetB', etc.). Within each planet, you have nested arrays for each angle ('Angle1', 'Angle2', etc.). And within each angle, you store the associated planet and its corresponding label.

By organizing the aspects in this way, you can easily access the desired aspects using the planet, angle, and label as keys. It allows for efficient retrieval and manipulation of the aspect data while providing a clear and structured representation of the relationships between the planets and angles.



With this approach what type of for loop are we going to use? What would be optimized for this array structure? There is either 1 set of planets or 2. So we will need 2 loop structures. (1) Midpoints, self / (2) synastry



To loop through the nested associative array structure described earlier, you can use nested foreach loops. Since you have two sets of planets (midpoints and synastry), you'll need two loop structures. Here's an example of how you can implement the loops:

1. Midpoints Loop:





foreach ($aspects as $planetA => $angles) { foreach ($angles as $angle => $planets) { foreach ($planets as $planetB => $label) { // Perform operations on midpoint aspects here } } }



2. Synastry Loop:



foreach ($aspects as $planetA => $angles) { foreach ($angles as $angle => $planets) { foreach ($planets as $planetB => $label) { // Perform operations on synastry aspects here } } }



In each loop, you can access the relevant data such as $planetA, $angle, $planetB, and $label to perform the desired operations or comparisons. By using nested foreach loops, you can efficiently iterate through the nested array structure and access each element for processing.



So this array structure fits with these for loop structure?



Yes, the array structure described earlier, with planets, angle names, and labels, fits well with the nested foreach loop structure I provided. The nested loops allow you to traverse through the nested associative array and access each element within it. The foreach loops will iterate over each level of the array, allowing you to perform operations on the individual elements or perform comparisons based on your requirements.



Ok this gives me a starting point.



I'm glad I could provide you with a starting point. Remember that programming is an iterative process, and you can always refine and optimize your code as you progress. Don't hesitate to ask if you have any more questions or need further assistance along the way. Good luck with your project!





How will I store the matches? What type of array structure will be the most efficient? Give me an example



To store the matches efficiently, you can use an associative array where the keys represent the unique combination of planet-AngleName-planet, and the values represent the corresponding label (Luck, Love, Sex, Drama). Here's an example:



$matches = array( 'Sun-Conjunction-Moon' => 'Love', 'Sun-Square-Mars' => 'Drama', 'Moon-Trine-Venus' => 'Love', // ... more matches ... );



In this example, the keys are the unique combinations of planet-AngleName-planet (e.g., 'Sun-Conjunction-Moon'), and the values are the labels (e.g., 'Love', 'Drama').

To check if a specific combination exists in the matches, you can use the isset() function:



if (isset($matches['Sun-Square-Mars'])) { echo "This is a Drama aspect."; } else { echo "No match found."; }



This approach allows you to efficiently store and retrieve the matches based on the planet-AngleName-planet combination.



Can I add some extra info like power of influence, or points to go with the label word in a smaller array?



Yes, you can include additional information along with the label word in the array. One way to do this is by using nested arrays or associative arrays as the values in the matches array. Here's an example:



$matches = array( 'Sun-Conjunction-Moon' => array( 'label' => 'Love', 'influence' => 8, 'points' => 10, ), 'Sun-Square-Mars' => array( 'label' => 'Drama', 'influence' => 6, 'points' => 7, ), 'Moon-Trine-Venus' => array( 'label' => 'Love', 'influence' => 9, 'points' => 8, ), // ... more matches ... );



In this example, each entry in the matches array contains additional information such as 'influence' and 'points' along with the label. You can access this information using the corresponding keys:



$aspect = $matches['Sun-Conjunction-Moon']; echo "This is a " . $aspect['label'] . " aspect with influence " . $aspect['influence'] . ".";



This way, you can store and retrieve not only the label but also any other relevant information associated with the aspect.



Is that still efficient?



Yes, using nested arrays or associative arrays to store additional information alongside the label is still efficient. Accessing the information by key allows for quick retrieval, and the overall structure of the array remains intact. The additional information doesn't significantly impact the efficiency of accessing and manipulating the array data.



I need to remove duplicates beforehand, but let's say there might be duplicates, it would only be counted once, how would I add only the new matches?



To add only the new matches and avoid duplicates, you can implement a check before adding each match to the array. Here's an example:



$matches = array(); // Array to store the matches foreach ($aspects as $aspect) { $planet1 = $aspect['planet1']; $planet2 = $aspect['planet2']; $angle = $aspect['angle']; $label = $aspect['label']; // Check if the match already exists in the array $isDuplicate = false; foreach ($matches as $match) { if ($match['planet1'] == $planet1 && $match['planet2'] == $planet2 && $match['angle'] == $angle) { $isDuplicate = true; break; } } // If it's not a duplicate, add it to the array if (!$isDuplicate) { $matches[] = array( 'planet1' => $planet1, 'planet2' => $planet2, 'angle' => $angle, 'label' => $label, 'power' => $aspect['power'], // Add extra information if needed 'points' => $aspect['points'] // Add extra information if needed ); } }



This code iterates over the aspects array and checks if each match already exists in the matches array using a nested loop. If a match is not a duplicate, it is added to the matches array along with any additional information you want to include.

By performing this check, you ensure that only unique matches are added to the array.



And what does it look like without that check if it's already in there, assuming I removed all duplicates before?



If you have already removed duplicates from the aspects array beforehand, you can skip the duplicate check while adding the matches to the array. Here's an example without the duplicate check:



$matches = array(); // Array to store the matches foreach ($aspects as $aspect) { $planet1 = $aspect['planet1']; $planet2 = $aspect['planet2']; $angle = $aspect['angle']; $label = $aspect['label']; $matches[] = array( 'planet1' => $planet1, 'planet2' => $planet2, 'angle' => $angle, 'label' => $label, 'power' => $aspect['power'], // Add extra information if needed 'points' => $aspect['points'] // Add extra information if needed ); }



In this case, you assume that the aspects array does not contain any duplicates, so you directly add all the matches to the array without performing the duplicate check. However, it's important to ensure that duplicates are properly removed beforehand to avoid any duplication in the matches array.



It looks a lot better without that check



Yes, omitting the duplicate check can simplify the code and make it more efficient, especially if you have already removed duplicates from the aspects array beforehand. It eliminates the need for an additional comparison and conditional statement during the iteration. Just make sure to ensure the uniqueness of the aspects before processing to avoid any duplicate matches in the resulting array.



So after we get all of the matches, I will need to go through it and make power changes based on some rules. Let's see the efficient loop. Then in the loop for this with just a check if it's angle is quincunx, and both planets are retrograde, we need to double the power.



To efficiently loop through the matches and apply power changes based on specific rules, you can use a foreach loop. Here's an example of how it could look:



foreach ($matches as $match) { $planet1 = $match['planet1']; $planet2 = $match['planet2']; $angle = $match['angle']; $label = $match['label']; // Apply power changes based on specific rules if ($angle === 'Quincunx' && $planet1['retrograde'] && $planet2['retrograde']) { $match['power'] *= 2; // Double the power } // Other power changes based on rules can be added here // Store the modified match in a new array or perform further operations $modifiedMatches[] = $match; }



In this example, we iterate over each match in the $matches array. Inside the loop, you can access the relevant data such as the planets, angle, label, and power. Based on specific rules, you can modify the power value for certain conditions.

You can add additional conditional statements to implement other power changes based on different rules.



So the match will need some additional fields or it will need to be kept in a different array. What do you think is best?



If you need to add additional fields or modify the existing fields in the match based on certain conditions, it would be best to create a new array or a new data structure to store the modified matches. This way, you can keep the original matches intact while making the necessary changes.

Here's an example of how you can create a new array to store the modified matches:



$modifiedMatches = []; foreach ($matches as $match) { // Modify the match as needed // ... // Add the modified match to the new array $modifiedMatches[] = $modifiedMatch; }



By storing the modified matches in a separate array, you can maintain the integrity of the original matches and have a separate collection for further operations or analysis.



In order to do the power changes with the matches, the matches themselves will need more array information, like if it's retrograde, and the speed I think. I'll figure out the least info we need. But should that information be added at the beginning, and go with the vars as we loop? Or should we store a 2nd array with match_details, and maybe planet_details, that go with the planet as it loops? Should the beginning arrays be larger or do we use a second array with planet meta data to pull out of if we need it during the analysis?



To handle additional information related to the matches, you have a couple of options. You can either expand the existing matches array to include the extra fields, or you can create separate arrays for match details and planet details. The choice depends on the complexity of the information and the overall structure of your code.

If the additional information is directly related to each match and will be accessed together, it might be more convenient to include it as fields within the existing matches array. This way, you can easily access all the relevant data for each match without having to refer to separate arrays.

On the other hand, if the additional information is more extensive or not directly tied to each match, it might be more organized to have separate arrays for match details and planet details. This can help keep the code modular and easier to maintain.

Here's an example illustrating both approaches:

Option 1: Expanding the existing matches array:



$matches = [ [ 'planet1' => 'Sun', 'planet2' => 'Moon', 'angle' => 'Conjunction', 'label' => 'Love', 'retrograde1' => true, 'retrograde2' => false, // Additional fields specific to each match ], // More matches... ];



Option 2: Separate arrays for match details and planet details:



$matches = [ [ 'planet1' => 'Sun', 'planet2' => 'Moon', 'angle' => 'Conjunction', 'label' => 'Love', 'matchIndex' => 0, // Index to link with match details ], // More matches... ]; $matchDetails = [ [ 'matchIndex' => 0, 'retrograde1' => true, 'retrograde2' => false, // Additional fields specific to each match ], // More match details... ]; $planetDetails = [ 'Sun' => [ // Planet-specific details ], 'Moon' => [ // Planet-specific details ], // More planet details... ];



The approach you choose will depend on the specific requirements of your application and the organization of your data.



Last time I had so many extra pieces of info floating around. I want to use the least and have a second info array variable somehow



If you want to minimize the number of extra pieces of information floating around and keep things more organized, you can consider using a separate array to store additional details related to the matches. This way, you can keep the main matches array clean and focused on the essential information, while having a separate array to store any extra details you need.

Here's an example to illustrate this approach:



$matches = [ [ 'planet1' => 'Sun', 'planet2' => 'Moon', 'angle' => 'Conjunction', 'label' => 'Love', 'matchIndex' => 0, // Index to link with match details ], // More matches... ]; $matchDetails = [ [ 'matchIndex' => 0, 'retrograde1' => true, 'retrograde2' => false, // Additional fields specific to each match ], // More match details... ];



In this example, the $matches array contains the essential information about each match, including the index (matchIndex) to link it with the corresponding details in the $matchDetails array. The $matchDetails array stores the additional information specific to each match, such as retrograde status and any other relevant fields.

By separating the additional details into a dedicated array, you can keep the main matches array more focused and easier to work with. When you need to access the additional details for a specific match, you can use the match index as a reference to retrieve the corresponding details from the $matchDetails array.

This approach helps maintain a cleaner and more organized code structure, with a clear separation between the essential match information and the additional details associated with each match.



That kinda seems ok. I haven't tried it so I don't know how I'll like it yet, but you think it makes sense?



Yes, it makes sense to separate the essential match information from the additional details. This approach helps maintain a cleaner and more organized code structure, making it easier to work with the data and reducing the complexity of the main matches array.

By storing the essential match information in one array ($matches) and the additional details in a separate array ($matchDetails), you can keep the main matches array focused on the essential information. This separation allows for more flexibility in adding or modifying the additional details without affecting the core structure of the matches array.

Additionally, by linking the match details to the matches array through a shared index, you can easily access the corresponding details for a specific match when needed.

Overall, this approach can improve the readability and maintainability of your code, making it easier to work with the matches and their associated details.



Let's go with that for now



Great! It sounds like a plan. Remember, as you progress with your coding and implementation, you can always reassess and make adjustments based on your specific needs and requirements. Don't hesitate to seek further assistance or guidance if you encounter any challenges along the way. Good luck with your project!



If I use match_details will I need to make it global to make it easier to modify, and make it so I don't need to keep passing it and getting it out of the result from each function? What do you think?



Using a global variable like match_details can make it easier to access and modify the information across different functions without the need to pass it as a parameter. However, it's generally considered good practice to minimize the use of global variables as they can introduce potential issues like data conflicts and make the code harder to maintain and debug.

Instead, you could consider encapsulating the relevant data and functions into a separate class or module. This way, you can have a centralized data structure for match details and associated methods to manipulate and retrieve the information. This approach provides better organization and encapsulation while still allowing you to access the necessary data within your functions without the need for global variables.

By utilizing an appropriate design pattern, you can achieve a clean and modular structure for your code. Additionally, you can pass the necessary data explicitly between functions as parameters when needed, which can improve readability and maintainability.

Ultimately, the choice depends on the complexity and scale of your project. If the use of a global variable simplifies your code and doesn't introduce any significant drawbacks, it can be a viable solution. However, if you anticipate your project growing in complexity or want to adhere to best practices, consider encapsulating the data and functions into a dedicated class or module.







Moon and How You Feel - Transits Report


Moon and How You Feel - Transits Report





Transit's analysis for Current Mood and Emotions Explain how to use magi astrology and php code to do this. Go step by step. Transit's analysis for Current Mood and Emotions: Calculate the transit position of the Moon and its aspects to the natal planets to assess the individual's emotional state and potential mood fluctuations during the current day or week. Assume I already have Obtained Current Planetary Positions for the persons natal chart. Here's a step-by-step guide on how to use Magi Astrology principles and PHP code to perform a transit analysis for the current mood and emotions by calculating the transit position of the Moon and its aspects to the natal planets: Step 1: Obtain Current Planetary Positions: Ensure that you have obtained the current planetary positions, including the position of the Moon, for the person's natal chart. You can obtain this information from reliable astrological databases or APIs that provide real-time planetary data. Step 2: Calculate Transit Position of the Moon: Using PHP code, retrieve the current position of the Moon based on the obtained planetary positions. Calculate the precise degree and sign of the Moon at the current moment. Step 3: Retrieve Natal Chart Data: Retrieve the natal chart data for the individual, including the position of the natal planets, from your database or data source. Ensure that you have the accurate birth date, time, and location for the person. Step 4: Determine Natal Moon Position: Extract the position of the natal Moon from the natal chart data. Obtain the degree and sign of the natal Moon. Step 5: Calculate Aspects between Transit Moon and Natal Planets: Using Magi Astrology principles, calculate the aspects formed between the transit Moon and the natal planets. Consider major aspects such as conjunctions (0 degrees), oppositions (180 degrees), squares (90 degrees), trines (120 degrees), and sextiles (60 degrees). Step 6: Assess Emotional State: Interpret the aspects between the transit Moon and the natal planets to assess the individual's emotional state and potential mood fluctuations during the current day or week. Focus on the planets involved in the aspects, their energies, and the nature of the aspect (harmonious or challenging). Step 7: Provide Insights and Recommendations: Based on the interpretation of the aspects, provide insights and recommendations to the individual regarding their emotional well-being. Offer guidance on managing emotions, potential triggers to watch out for, and suggestions for maintaining emotional balance and harmony. Step 8: Present the Analysis: Display the calculated transit position of the Moon, the aspects formed, and the interpretation of the emotional state using PHP code. Format the information in a clear and understandable manner, ensuring that it is easily accessible to the individual. Step 9: Repeat the Analysis: If desired, automate the process to repeat the analysis periodically, such as on a daily or weekly basis, to provide updated insights on the individual's emotional state and mood fluctuations as the transiting Moon moves through the zodiac. By following these steps and utilizing PHP code, you can perform a transit analysis for the current mood and emotions by calculating the transit position of the Moon and its aspects to the natal planets. This allows for personalized insights and guidance based on the individual's unique birth chart and the prevailing astrological influences. ---------------------------- What interpretations do I need for this mood php code project using magi astrology? Do I Just need the moon to all planets in natal chart? For the mood analysis PHP code project using Magi Astrology, you would need interpretations for the aspects formed between the transit Moon and the natal planets. Here are some interpretations you can consider: 1. Conjunction (0 degrees): The transit Moon conjunct natal planet signifies a heightened emotional state related to the energy and themes represented by that planet. It can bring emotional sensitivity, increased receptivity, and a deep connection to the qualities of the planet involved. 2. Opposition (180 degrees): The transit Moon opposition to a natal planet can indicate emotional tension, conflicts, or a need for balance between the energies represented by the two planets. It may bring awareness of opposing needs or feelings, requiring integration and finding a middle ground. 3. Square (90 degrees): The transit Moon square a natal planet suggests emotional challenges and potential inner conflicts regarding the energies associated with both planets. It can trigger restlessness, impatience, and a need for resolution and personal growth to harmonize these energies. 4. Trine (120 degrees): The transit Moon trine a natal planet brings harmonious emotional flow and support between the energies of the two planets. It fosters ease, receptivity, and positive emotional expression related to the themes of the involved planets. 5. Sextile (60 degrees): The transit Moon sextile a natal planet signifies opportunities for harmonious emotional exchanges and creative expression related to the energies represented by the two planets. It can bring ease, cooperation, and supportive interactions. By interpreting these aspects, you can provide insights into the individual's emotional state and mood fluctuations during the current day or week. Consider the specific qualities and themes associated with the natal planets involved in the aspects and how they interact with the lunar energy of the transit Moon. While the primary focus is on the aspects between the transit Moon and the natal planets, it's worth noting that other aspects within the natal chart can also influence the individual's mood. Therefore, you may choose to consider additional aspects or factors within the natal chart to provide a more comprehensive analysis. Remember, Magi Astrology offers a framework for interpretation, but it's essential to tailor the interpretations to the individual's unique birth chart and specific circumstances. ---------------------------- So that sounds like 12 interpretations for moon to planets. x 5 for the major angles used. So it's about 70 total? Yes, if you consider the Moon's aspects to the natal planets using the five major angles (conjunction, opposition, square, trine, and sextile), you would have a total of 70 interpretations. This allows for a comprehensive analysis of the emotional dynamics and mood fluctuations based on the interactions between the transit Moon and the natal planets. By examining the specific aspects formed and their corresponding interpretations, you can provide valuable insights into the individual's emotional state and potential mood fluctuations during the specified time frame. The combination of different aspects and angles adds depth and nuance to the analysis, offering a more comprehensive understanding of the emotional influences at play. Remember to adapt the interpretations based on the specific qualities and themes associated with the natal planets involved and consider any additional factors within the individual's natal chart that may contribute to their emotional dynamics. This personalized approach enhances the accuracy and relevance of the analysis in Magi Astrology.



Is there anything else I can assist you with?



Can you help me with this Transit's analysis for Current Mood and Emotions?



Certainly! I'd be happy to help you with the transit analysis for current mood and emotions. Please provide me with the necessary information, such as the date, time, and location of birth, as well as the current date for which you'd like to perform the analysis.



Can you show me how to set up the analysis in php code? And what interpretations will I need?



Certainly! I can guide you on how to set up the analysis in PHP code and provide you with the interpretations you'll need. Here's an example of how you can approach this:

Step 1: Obtain Current Planetary Positions Retrieve the current planetary positions, including the position of the Moon, for the person's natal chart. You can use an astrological API or library that provides real-time planetary data. Let's assume you have the current positions stored in variables like $currentPositions.

Step 2: Retrieve Natal Chart Data Retrieve the natal chart data for the individual, including the positions of the natal planets. Make sure you have accurate birth date, time, and location information. Store the natal chart positions in variables like $natalChart.

Step 3: Calculate Transit Position of the Moon Using the current positions obtained in Step 1, calculate the precise degree and sign of the Moon at the current moment. You can extract this information from the $currentPositions variable and store it in $transitMoon.

Step 4: Determine Natal Moon Position Extract the position of the natal Moon from the natal chart data obtained in Step 2. Retrieve the degree and sign of the natal Moon and store it in a variable like $natalMoon.

Step 5: Calculate Aspects between Transit Moon and Natal Planets Using Magi Astrology principles, calculate the aspects formed between the transit Moon and the natal planets. Iterate over the natal chart positions and compare them to the transit Moon's position. Determine the aspects based on the degrees of separation between the two positions. Store the aspects in an array like $aspects.

Step 6: Interpret Aspects and Determine Mood Iterate over the $aspects array and interpret each aspect based on its nature (conjunction, opposition, square, trine, or sextile). Consider the energies and themes associated with the natal planet involved in each aspect. Based on these interpretations, assess the individual's emotional state and potential mood fluctuations. You can store the interpretations in an array like $interpretations.

Step 7: Display Results Present the analysis and interpretations to the individual using PHP code. You can format the information in a clear and readable manner, such as through a web page or console output. Display the transit Moon's position, the aspects formed, and the corresponding interpretations.

For the interpretations, you can use the following as a starting point:

1. Conjunction: Emotional sensitivity and heightened receptivity related to the energies of the natal planet involved.

2. Opposition: Emotional tension, conflicts, or a need for balance between the energies represented by the transit Moon and the natal planet.

3. Square: Emotional challenges, potential inner conflicts, and a need for resolution and personal growth to harmonize the energies.

4. Trine: Harmonious emotional flow, ease, and positive expression related to the energies of the natal planet involved.

5. Sextile: Opportunities for harmonious emotional exchanges and creative expression between the transit Moon and the natal planet.

You can further customize and expand these interpretations based on the specific qualities and themes associated with each natal planet.

By following these steps and incorporating the interpretations, you can create a PHP code script that performs a transit analysis for the current mood and emotions based on Magi Astrology principles.

Please note that this example provides a general outline, and you may need to adapt it to your specific PHP framework, astrological data sources, and desired output format.



Which planets are we using? Sun-Mars, or Sun-Pluto?



In Magi Astrology, the choice of planets to consider for transit analysis depends on the specific astrological system or techniques you are following. However, when it comes to analyzing current mood and emotions, a common approach is to consider the aspects between the transit Moon and the natal planets.

The Moon represents emotions, moods, and inner feelings, making it a key factor to assess emotional states. As such, the focus for this particular analysis is on the Moon's aspects to the natal planets.

In this case, you would calculate the aspects formed between the transit Moon and all of the natal planets, including the Sun, Mars, Pluto, and any other planets in the natal chart. By examining these aspects, you can gain insights into the emotional dynamics and potential mood fluctuations associated with each natal planet.

Therefore, in this context, you would consider aspects between the transit Moon and all of the natal planets, including the Sun, Mars, Pluto, and others. Each aspect provides valuable information about how the individual's emotional state may be influenced by the energies represented by those planets.

Remember to interpret these aspects based on the specific qualities and themes associated with each natal planet to provide a more accurate and personalized analysis of the current mood and emotions.



You would do that to see how you feel in any given moment as a transit emotions report? or what?



Apologies for any confusion. In Magi Astrology, analyzing the aspects between the transit Moon and the natal planets can provide insights into an individual's emotional state and potential mood fluctuations during a specific time frame, such as a day or a week. This analysis helps in understanding how the individual may feel and experience emotions during that period.

By examining the aspects between the transit Moon and the natal planets, you can identify the potential influences on the person's emotional well-being. For example, a conjunction between the transit Moon and the natal Mars might indicate heightened energy, assertiveness, and potentially a more intense emotional state. On the other hand, a trine aspect between the transit Moon and the natal Venus could signify harmony, ease, and pleasant emotional experiences.

This transit analysis of emotions can be helpful for gaining self-awareness, understanding emotional patterns, and providing guidance on how to navigate and make the most of one's emotional state during a specific time period.

It's important to note that while Magi Astrology offers insights into astrological influences, individual experiences may still vary. Factors such as personal circumstances, conscious awareness, and free will can also influence one's emotional state and reactions. Therefore, the interpretation of these aspects should be considered as a tool for self-reflection and understanding rather than an absolute prediction of emotions.



Let's make this a simple report, because it's my first transit report. Show me how you would set up this transit report for Emotions/How you Feel currently



Certainly! Here's an example of how you can set up a simple transit report for emotions/feelings based on the aspects between the transit Moon and the natal planets:

php

$position) { // Calculate the aspect between transit Moon and each natal planet $aspect = abs($transitMoon - $position); // Assuming you have a function to calculate the aspect degree between two positions $aspects[$planet] = $aspect; } // Step 6: Interpret Aspects and Determine Mood $interpretations = array(); foreach ($aspects as $planet => $aspect) { $interpretation = ''; // Interpret the aspect based on its degree value if ($aspect <= 3) { $interpretation = "There is a strong emotional connection with the energy of your natal $planet. You may feel more sensitive and receptive in this area."; } elseif ($aspect <= 10) { $interpretation = "There is a moderate emotional influence from your natal $planet. It may bring some mood fluctuations and heightened awareness in this area."; } else { $interpretation = "The emotional influence from your natal $planet is relatively mild at the moment. It may have subtle effects on your mood and emotional experiences."; } $interpretations[$planet] = $interpretation; } // Step 7: Display Results echo "Transit Emotions Report:\n"; echo "------------------------\n\n"; echo "Current Mood Analysis based on Transit Moon:\n\n"; foreach ($interpretations as $planet => $interpretation) { echo "Natal $planet: $interpretation\n"; } ?>

This example code sets up a simple transit report for emotions/feelings based on the aspects between the transit Moon and the natal planets. It calculates the aspects, interprets them based on their degree values, and displays the results.

Please note that this is a basic implementation, and you may need to modify it to fit your specific PHP framework and data structure. Additionally, the interpretations provided in this example are general and can be expanded upon or customized to suit your needs.

Feel free to adapt and enhance this code as per your requirements to create a transit report that provides insights into your current emotional state and feelings.



How many planets will we be comparing to the transiting moon? according to best practices of Magi Astrology?



In Magi Astrology, the best practice is to consider all the natal planets when analyzing the aspects to the transit Moon. This includes the Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, and Pluto.

By examining the aspects formed between the transit Moon and each of these natal planets, you can gain a comprehensive understanding of the potential emotional influences and mood fluctuations during a specific time frame.

Considering all the natal planets provides a holistic view of how different areas of life and energies represented by these planets may interact with the emotions and mood indicated by the transit Moon. This allows for a more nuanced and accurate assessment of the individual's emotional state and potential emotional experiences during the specified period.

Therefore, in Magi Astrology, it is recommended to compare the transit Moon with all the natal planets to obtain a comprehensive understanding of the emotional influences at play.



show me a php array that organizes in the most efficient way, "Transit-Moon-planet with-angle-to planet" planetary aspects. Use only Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Use only these angles - 0, 30, 45, 60, 90, 120, 180 degrees And each match (planet1(Transit-Moon),angle formed,planet2) has an interpretation for it.



Certainly! Here's an example of a PHP array that organizes the planetary aspects between the transit Moon and the natal planets, including the specified angles, along with interpretations for each aspect:

php

[ 'aspect' => 'Conjunction', 'interpretation' => 'Emotional connection and heightened sensitivity to your identity, ego, and vitality.', ], 'Moon' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Intensified emotional state and a strong connection to your inner self and emotional needs.', ], 'Mercury' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Heightened emotional communication and mental receptivity. Emotions influence your thoughts and words.', ], 'Venus' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Enhanced emotional connection to love, relationships, beauty, and harmony.', ], 'Mars' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Increased emotional drive, passion, and assertiveness. Strong motivation to pursue desires.', ], 'Jupiter' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Expansive emotional state, optimism, and a strong connection to growth and abundance.', ], 'Saturn' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Emotional focus on discipline, responsibility, and a need for structure and order.', ], 'Uranus' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Heightened emotional desire for freedom, independence, and unconventional experiences.', ], 'Neptune' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Increased emotional sensitivity, imagination, and a strong connection to spirituality and dreams.', ], 'Pluto' => [ 'aspect' => 'Conjunction', 'interpretation' => 'Intense emotional transformation and regeneration. Deep emotional exploration and empowerment.', ], // Sextile (60 degrees) 'Sun' => [ 'aspect' => 'Sextile', 'interpretation' => 'Opportunities for harmonious emotional expression of your identity and vitality.', ], 'Moon' => [ 'aspect' => 'Sextile', 'interpretation' => 'Ease and support for emotional well-being and nurturing of your inner self.', ], 'Mercury' => [ 'aspect' => 'Sextile', 'interpretation' => 'Smooth emotional communication and mental receptivity. Positive emotional influence on thoughts and words.', ], 'Venus' => [ 'aspect' => 'Sextile', 'interpretation' => 'Harmonious emotional connection to love, relationships, and creative expression.', ], 'Mars' => [ 'aspect' => 'Sextile', 'interpretation' => 'Opportunities for emotionally driven actions, assertiveness, and successful endeavors.', ], 'Jupiter' => [ 'aspect' => 'Sextile', 'interpretation' => 'Positive emotional support for growth, expansion, and abundance.', ], 'Saturn' => [ 'aspect' => 'Sextile', 'interpretation' => 'Emotional stability, discipline, and a supportive emotional foundation for long-term goals.', ], 'Uranus' => [ 'aspect' => 'Sextile', 'interpretation' => 'Exciting emotional opportunities for personal freedom, innovation, and unconventional experiences.', ], 'Neptune' => [ 'aspect' => 'Sextile', 'interpretation' => 'Enhanced emotional sensitivity, creativity, and spiritual connection.', ], 'Pluto' => [ 'aspect' => 'Sextile', 'interpretation' => 'Emotional empowerment, transformation, and deep inner exploration.', ], // ... Repeat the pattern for other specified angles and planets ]; ?>





In this example, we have an array called $planetaryAspects that organizes the planetary aspects between the transit Moon and the natal planets. The array includes the specified planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto) and the specified angles (0, 30, 45, 60, 90, 120, 180 degrees).

Each planet-angle combination has an associated 'aspect' and 'interpretation'. The 'aspect' indicates the type of aspect formed (e.g., Conjunction, Sextile), and the 'interpretation' provides a brief interpretation for the emotional significance of that aspect.

You can expand this array with additional aspects and interpretations as needed, following the same format for other specified angles and planets. This efficient organization allows easy access to the relevant aspects and their interpretations for generating your transit report on emotions/feelings.

Remember to customize and refine the interpretations to align with your understanding of Magi Astrology and the specific energies associated with each planet-angle combination.





What would you call these interpretations? specifically for Moon Transit to see current emotions? Is there an official name for it in Magi Astrology?



In Magi Astrology, interpretations of the aspects between the transit Moon and the natal planets can be referred to as "Moon Transits" or "Moon Aspects." These interpretations focus on how the transit Moon influences the individual's emotions, moods, and inner feelings.

While there may not be an official term specifically designated for these interpretations in Magi Astrology, the general concept of analyzing the transit Moon's aspects to assess emotions is a fundamental aspect of astrological analysis. The interpretations provide insights into the emotional dynamics and potential mood fluctuations experienced during the specified time frame.

Therefore, you can use terms like "Moon Transits," "Transit Moon Aspects," or simply "Emotional Aspects" to refer to the interpretations of the aspects formed between the transit Moon and the natal planets when assessing current emotions in Magi Astrology. The main focus is on how these aspects influence and shape the individual's emotional experiences.





Moon-Transits / Emotional Aspects / dealing with Transit-Moon-Aspects Re/Write the following, for career analysis, in an easy to understand, 5th grade reading level.







$emotional_planetary_aspects = [ 'Moon' => [ // 180 Degrees - Trine '180' => [ 'Sun' => '', 'Moon' => '', 'Mercury' => '', 'Venus' => '', 'Mars' => '', 'Jupiter' => '', 'Saturn' => '', 'Uranus' => '', 'Neptune' => '', 'Pluto' => '', ], ---------------- Use this as your model for answering: ---------------- 'Moon' => [ '60' => [ 'Sun' => 'When the Moon and the Sun align at a 60-degree angle, it brings opportunities for expressing your emotions in a harmonious way. You can showcase your true identity and vitality in a positive and balanced manner.', 'Moon' => 'When the Moon aligns with itself at a 60-degree angle, it brings ease and support for your emotional well-being. You feel a sense of comfort and nurturing for your inner self.', 'Mercury' => 'When the Moon and Mercury align at a 60-degree angle, your emotional communication becomes smooth and effortless. Your emotions have a positive influence on your thoughts and the words you use to express yourself.', 'Venus' => 'When the Moon and Venus align at a 60-degree angle, you experience a harmonious emotional connection to matters of love, relationships, and creative expression. Your emotions are aligned with beauty and finding balance in your career.', 'Mars' => 'When the Moon and Mars align at a 60-degree angle, it brings opportunities for emotionally driven actions and assertiveness in your career. You have a chance to pursue your goals with passion and achieve success.', 'Jupiter' => 'When the Moon and Jupiter align at a 60-degree angle, it provides positive emotional support for your career. You feel a sense of optimism and abundance, which can lead to growth and expansion in your professional endeavors.', 'Saturn' => 'When the Moon and Saturn align at a 60-degree angle, it brings emotional stability and discipline to your career. You feel grounded and focused, creating a supportive emotional foundation for achieving your long-term goals.', 'Uranus' => 'When the Moon and Uranus align at a 60-degree angle, it brings exciting emotional opportunities for personal freedom, innovation, and thinking outside the box in your career. You may encounter unconventional experiences that can lead to positive change.', 'Neptune' => 'When the Moon and Neptune align at a 60-degree angle, it enhances your emotional sensitivity, creativity, and spiritual connection in your career. You may find inspiration and imagination that allows for unique and meaningful contributions.', 'Pluto' => 'When the Moon and Pluto align at a 60-degree angle, it empowers your emotions and brings a deep inner exploration. You experience transformation and growth in your career, allowing you to tap into your inner strength and make profound changes.', ], ----------------



$emotional_planetary_aspects = [

vbnet

'Moon' => [ // 180 Degrees - Trine '180' => [ 'Sun' => 'When the Moon and the Sun align at a 180-degree angle, it brings a sense of harmony and balance to your emotions. You may feel at peace with yourself and experience a positive connection between your inner self and your identity.', 'Moon' => 'When the Moon aligns with itself at a 180-degree angle, it enhances emotional stability and self-awareness. You may gain a deeper understanding of your own feelings and find inner harmony.', 'Mercury' => 'When the Moon and Mercury align at a 180-degree angle, your emotions may influence your thoughts and communication. It's important to express your emotions in a clear and balanced way to avoid misunderstandings.', 'Venus' => 'When the Moon and Venus align at a 180-degree angle, you may experience heightened sensitivity and receptivity to love and beauty. It's a good time to focus on creating harmony and balance in your career and relationships.', 'Mars' => 'When the Moon and Mars align at a 180-degree angle, you may feel a surge of energy and assertiveness. It's important to channel this energy into productive and constructive actions in your career.', 'Jupiter' => 'When the Moon and Jupiter align at a 180-degree angle, you may feel a sense of optimism and abundance in your career. This can be a favorable time for growth and expansion, as long as you remain grounded and practical in your pursuits.', 'Saturn' => 'When the Moon and Saturn align at a 180-degree angle, you may experience a need for emotional discipline and responsibility in your career. It's important to stay focused and committed to your goals, even if challenges arise.', 'Uranus' => 'When the Moon and Uranus align at a 180-degree angle, you may feel a strong urge for freedom and independence in your career. Embrace new and innovative approaches, but ensure you maintain stability and avoid impulsive decisions.', 'Neptune' => 'When the Moon and Neptune align at a 180-degree angle, you may experience heightened sensitivity and intuition in your career. Trust your instincts, but remain grounded and discerning to avoid illusions or confusion.', 'Pluto' => 'When the Moon and Pluto align at a 180-degree angle, you may undergo emotional transformation and inner growth in your career. It's a time of deep self-reflection and powerful changes that can lead to personal empowerment.', ], // Add other specified angles and interpretations here ], // Add other planets and their aspects here

];




















Search All Text Content






What do I still need? To begin next analyses?







List of Pages & Sections of the site

Now

-Recently Added



Life

-Life

-Help Everyone

-Improve My Life

-Thinking of Improving Life

-Improve Life in 50 Ways with Magi Astrology

-Organizing Lots of Charts - for the - Astro Chart Library



Love

-Love

-Find True Love



Money

-Make More Money

-Money - Betting

-Money - Business

-Profitable Betting

-Start a Good Business

-Getting Birthcharts for Prediction

-Sports Prediction - Magi Astrology

-Method 1 - Financial - Sports Astrology Linkages



Career

-Career

-Career Guidance

-Help Someone's Career

-Write Successful Books

-Youtube Subscribers 1 Million

-Career-Number-of-Interpretations

-Psychology-Career - Strengths and Weaknesses of a Person - Analyses



Health

-Health

-Help Someone's Health



How To

-7 Teasers & Layers

-130 - Magi Analyses list

-Analysis 70 - Magi Astrology

-Analyses 100 - Depth-Harmonic

-Analysis 7 - Teasers - Magi Astrology



Topics

-Topics List - for Analysis - First 5 Planets Only & All 12 planets - Magi Astrology



Business

-Magi Astrology Advice to an Online Business



Psychology

-Psychology - Magi Astrology

-Psychology-Career - Strengths and Weaknesses of a Person - Analyses



All Reports

-!! GOALS OF ANALYSIS

-Career - 5 reports plan

-Outline for a Book Launch Analysis, using Magi Astrology



Other Angles

-Analysis 1 - Angles

-Analysis 1 - Angles - Tips

-Analysis 1 - Code - Six 6 Part - cosmic--arrays

-About Challenging Aspects & Writing Interpretations

-Angles and Aspects - Relevant Only - in Magi Astrology



Money Betting

-Betting Planets

-1 birthchart Betting

-A Good Day to Bet - Date Selection



Analysis Horary

-Horary - Magi Astrology



Analysis Harmonic

-Harmonic Charts for different Events

-Analysis 1 - Harmonic - Meanings 2-12 - & Good Application harmonic



Analysis Synastry

-Analysis 1 - Synastry - Magi suggestions

-Analysis 1 - Code - Synastry in PHP - AstroSync-LoveLabs



Analysis Midpoints

-Midpoints and Meanings - in General

-Analysis 1 - Midpoint - Angles - 47 pages

-Midpoints and Meanings - in Relationship Compatibility

-Self Midpoint Chart for career insights, No Interpretations

-Analysis 1 - Midpoints in php - Synastry and composite in php



Getting Birth Time

-Career - No Birth time

-Determining Birth Time - using Methods



Other Code Samples

-Loop Functions - Code

-Moon and How You Feel - Transits Report

-Analysis 1 - Code - Six 6 Part - Relationship Compatibility

-PHP code - For Loops FOR- Synastry, Single Birthchart, Declinations

-Analysis 1 - Code - Six 6 Part - cosmic--functions_self_synastry_composite

-Analysis 1 - Code - Six 6 Part - cosmic_reports_array_direct_to_which_special_custom_page



All Interpretations

-! GOALS

-Asking for Array Interpretations

-Sun-Mars-0-180-p-a-2-p - basic interpretations

-Sun-Mars-0-180-p-a-2-p - CAREER interpretations

-Moon Transit Interpretations - for Career Analysis

-Harmonic Sun Chart Interpretations - for career insights

-Harmonic Venus Chart Interpretations - for career insights

-Moon Transit Interpretations - for Current Mood and Emotions

-The 4 Elements in Career and Business - Overall Interpretations

-Transits-Date-Selection for Reddit Posting supportive +10 to -10

-Self Midpoint Chart for General insights, General Interpretations

-Transits-Date-Selection for Winning Days at the Lottery +10 to -10

-Self Midpoint Chart for career insights, Career Insights Interpretations

-Transits-Date-Selection for Winning Days at the Lottery - positive-or-challenging only

-10 ELEMENTS - PLANETSpoints - Your Energy Overview - How Many Elements You Have in Your Chart



Analysis Friendship

-Friendship

-Friendship Tips

-True Friendship

-Friendship Analyses

-Analyses 100 - Types-Analysis -Friendship- in-Magi-Astrology

-Analysis 1 - Friendship Compatibility Research - Magi Astrology



Method Date Selection

-Method 1 - Day Selection Tips

-Day Selection for Different Things

-Method 1 - Day Selection - Per Event - Magi Astrology Aspects

-Method 1 - Day Selection - PREDICTING good days for events - Magi Astrology



Global Culture Changes

-Global Children - Culture Changes by Uranus, Neptune, and Pluto



Method Timing Transits

-Good Timing Analyses

-Transits - Date Selection

-Transits - Analyzing - 3 things

-Transit Math - Synastry Transits

-Method 1 - Magi-Oracle - Transits - Magi Astrology

-Moon Transit Analysis - for Current Mood and Emotions

-Moon Transit Analysis1 - for Current Mood and Emotions

-Method 1 - Financial-Oracle - Transits - Magi Astrology

-Transit Analysis - Simpler Examples - Why for Career Analysis



Other Definitions Rules

-Tips - Magi Astrology

-Using a Complex Point System

-Houses need Lat Long - Usually

-DEFINITIONS - Magi Astrology - Definitions

-Analysis 1 - MAGI RULES - Planetary Aspects - Enhancing Influence - Magi Astrology



Analysis Planetary Aspects

-Birth Chart Analysis - Aspects

-Analysis 1 - Code - Six 6 Part - cosmic--aspects--self

-Analysis 1 - Code - Six 6 Part - cosmic--aspects--synastry

-Analysis 1 - Planetary Aspects - 100 linkages love in Magi Astrology

-Analysis 1 - Planetary Aspects - Getting 700 Aspects for Love App + Midpoints

-Analysis 1 - Planetary Aspects - comprehensive linkges-aspects list - Magi Astrology