// echo $html; //echo "total micro array:".count($micros_array); //exit; /* D. c)balance out the variance */ $rem_meals = $breakfast_meals = $pre_lunch_snack_meals = $lunch_meals = $dinner_meals = $pre_dinner_snack_meals = $fin_meals_db = array(); $pescetarian_fish_count = 0; $nospecial_meat_fish_count = 0; // echo "micro array:<pre>";print_r($micros_array); //exit; $breakfast_meals = select_balance_meals($plan, $nutrition_type, $breakfast_variance, $micros_array, $meat_meals, $fish_meals, $meals_plan, $days_npes_cal, $ideal_protien, $ideal_fat, $ideal_carbo, 'breakfast', $weeknum, null, $fin_meals, $fin_meals_db, $final_meal_ids, $week_meal_ids, $pescetarian_fish_count, $nospecial_meat_fish_count, $sweet_tooth); //echo "break fast meals:<pre>";print_r($breakfast_meals); $lunch_meals = select_balance_meals($plan, $nutrition_type, $lunch_variance, $micros_array, $meat_meals, $fish_meals, $meals_plan, $days_npes_cal, $ideal_protien, $ideal_fat, $ideal_carbo, 'lunch', $weeknum, $breakfast_meals, $fin_meals, $fin_meals_db, $final_meal_ids, $week_meal_ids, $pescetarian_fish_count, $nospecial_meat_fish_count, $sweet_tooth); $dinner_meals = select_balance_meals($plan, $nutrition_type, $dinner_variance, $micros_array, $meat_meals, $fish_meals, $meals_plan, $days_npes_cal, $ideal_protien, $ideal_fat, $ideal_carbo, 'dinner', $weeknum, $lunch_meals, $fin_meals, $fin_meals_db, $final_meal_ids, $week_meal_ids, $pescetarian_fish_count, $nospecial_meat_fish_count, $sweet_tooth); $pre_dinner_snack_meals = select_balance_meals($plan, $nutrition_type, $snack_variance, $micros_array, $meat_meals, $fish_meals, $meals_plan, $days_npes_cal, $ideal_protien, $ideal_fat, $ideal_carbo, 'pre_dinner_snack', $weeknum, $dinner_meals, $fin_meals, $fin_meals_db, $final_meal_ids, $week_meal_ids, $pescetarian_fish_count, $nospecial_meat_fish_count, $sweet_tooth); if ($sweet_tooth == 'yes') { $pre_lunch_snack_meals = select_balance_meals($plan, $nutrition_type, $snack_variance, $micros_array, $meat_meals, $fish_meals, $meals_plan, $days_npes_cal, $ideal_protien, $ideal_fat, $ideal_carbo, 'pre_lunch_snack', $weeknum, $pre_dinner_snack_meals, $fin_meals, $fin_meals_db, $final_meal_ids, $week_meal_ids, $pescetarian_fish_count, $nospecial_meat_fish_count, $sweet_tooth); } if ($weeknum == 1) { echo $html; //echo "<pre>"; //echo "<br />breakfast variance<pre>";print_r($breakfast_variance); //echo "<br />lunch variance<pre>";print_r($lunch_variance); //echo "<br />dinner variance<pre>";print_r($dinner_variance); // echo "<br />snack variance<pre>";print_r($snack_variance); /* */ //echo "<br />day wise NPES:<pre>";print_r($days_npes_cal); /* echo "<br />micro values:<pre>";print_r($micros_array); echo "<br />breakfast meal<pre>";print_r($breakfast_meals); echo "<br />lunch meal<pre>";print_r($lunch_meals);
} /* difference calculation for meal */ /* D. c)balance out the variance */ $rem_meals = array(); echo "days special cal:<pre>"; print_r($days_npes_cal); echo "micros array:<pre>"; print_r($micros_array); //echo "per day meal:".$per_day_no_of_melas; if ($period == 12) { //for 12 week plan $meals = select_balance_meals($rem_meals, $variance, $micros_array, $days_npes_cal, $per_day_no_of_melas, 40, 20, 40, 0); // echo "test == <pre>";print_r($meals); } else { //for 4 week plans $meals = select_balance_meals($rem_meals, $variance, $micros_array, $days_npes_cal, $per_day_no_of_melas, 45, 17.5, 37.5, 0); } //echo "balance meal<pre>";print_r($meals); $micros_diff = array(); $fmeals = array(); function select_balance_meals($rem_meals = array(), $variance, $micros_array, $days_npes_cal, $per_day_no_of_melas = 4, $protin, $fat, $carbo, $i = 0, $fmeals = array()) { $temp_array = array(); global $wpdb; if (!empty($micros_array)) { /* check breakfast meal */ foreach ($variance as $k => $m) { //print_r($k);; $pro_diff = abs($protin / $micros_array[$k]['Protein'] * 100 - 100); $fat_diff = abs($fat / $micros_array[$k]['Fett'] * 100 - 100); $carb_diff = abs($carbo / $micros_array[$k]['Kohlenhydrate'] * 100 - 100);
function select_balance_meals($rem_meals = array(), $variance, $micros_array, $days_npes_cal, $per_day_no_of_melas = 4, $protin, $fat, $carbo, $i = 0, $fmeals = array()) { $temp_array = array(); if (!empty($micros_array)) { /* check breakfast meal */ foreach ($variance as $k => $m) { $pro_diff = abs((($protin / $micros_array[$k]['Protein']) * 100) - 100); $fat_diff = abs((($fat / $micros_array[$k]['Fett']) * 100) - 100); $carb_diff = abs((($carbo / $micros_array[$k]['Kohlenhydrate']) * 100) - 100); //echo $kcal = $micros_array[$k]['kcal'].'=='; foreach ($days_npes_cal as $d => $v) { //print_r($kcal); //print_r($v['breakfast'][1]); $breakfast = $lunch = $dinner = $pre_lunch = $pre_dinner = 0; if ($kcal >= $v['breakfast'][1] && $kcal <= $v['breakfast'][2]) { $kcal_diff = abs((($kcal / $v['breakfast'][0] * 100) - 100) * 1.5); $diff = $kcal_diff + $pro_diff + $fat_diff + $carb_diff; $micros_diff[$d]['b'][$micros_array[$k]['id']] = $diff; $breakfast = $micros_array[$k]['id']; } if ($breakfast > 0) { if ($kcal >= $v['lunch'][1] && $kcal <= $v['lunch'][2]) { $pro_diff_l = abs(2 * $protin - $micros_array[$breakfast]['Protein']); $fat_diff_l = abs(2 * $fat - $micros_array[$breakfast]['Fett']); $carb_diff_l = abs(2 * $carbo - $micros_array[$breakfast]['Kohlenhydrate']); $kcal_diff = abs((($kcal / $v['lunch'][0] * 100) - 100) * 1.5); $diff = $kcal_diff + $pro_diff_l + $fat_diff_l + $carb_diff_l; $micros_diff[$d]['l'][$micros_array[$k]['id']] = $diff; $lunch = $micros_array[$k]['id']; } } if ($lunch > 0) { if ($kcal >= $v['dinner'][1] && $kcal <= $v['dinner'][2]) { $pro_diff_l = abs(2 * $protin - $micros_array[$lunch]['Protein']); $fat_diff_l = abs(2 * $fat - $micros_array[$lunch]['Fett']); $carb_diff_l = abs(2 * $carbo - $micros_array[$lunch]['Kohlenhydrate']); $kcal_diff = abs((($kcal / $v['dinner'][0] * 100) - 100) * 1.5); $diff = $kcal_diff + $pro_diff_l + $fat_diff_l + $carb_diff_l; $micros_diff[$d]['d'][$micros_array[$k]['id']] = $diff; $dinner = $micros_array[$k]['id']; } } if ($dinner > 0) { //echo $kcal.'--'; //echo $v['pre_dinner_snack'][1].'<br>'; if ($kcal >= $v['pre_dinner_snack'][1] && $kcal <= $v['pre_dinner_snack'][2]) { $pro_diff_l = abs(2 * $protin - $micros_array[$dinner]['Protein']); $fat_diff_l = abs(2 * $fat - $micros_array[$dinner]['Fett']); $carb_diff_l = abs(2 * $carbo - $micros_array[$dinner]['Kohlenhydrate']); $kcal_diff = abs((($kcal / $v['pre_dinner_snack'][0] * 100) - 100) * 1.5); $diff = $kcal_diff + $pro_diff_l + $fat_diff_l + $carb_diff_l; $micros_diff[$d]['s'][$micros_array[$k]['id']] = $diff; $snack = $micros_array[$k]['id']; } } if ($snack > 0 && isset($v['pre_lunch_snack'])) { if ($kcal >= $v['pre_lunch_snack'][1] && $kcal <= $v['pre_lunch_snack'][2]) { $pro_diff_l = abs(2 * $protin - $micros_array[$snack]['Protein']); $fat_diff_l = abs(2 * $fat - $micros_array[$snack]['Fett']); $carb_diff_l = abs(2 * $carbo - $micros_array[$snack]['Kohlenhydrate']); $kcal_diff = abs((($kcal / $v['pre_lunch_snack'][0] * 100) - 100) * 1.5); $diff = $kcal_diff + $pro_diff_l + $fat_diff_l + $carb_diff_l; $micros_diff[$d]['s1'][$micros_array[$k]['id']] = $diff; $snack1 = $micros_array[$k]['id']; } } // if(isset($v['breakfast'])) //print_r($micros_diff); } } //print_r($micros_diff); /*$breakfast = array_keys($micros_diff, min($micros_diff)); $meals['breakfast'] = $breakfast[0]; $fmeals['breakfast'][$i] = $breakfast[0]; print_r($meals); unset($micros_diff[$breakfast[0]]);*/ } exit; if (!empty($micros_diff)) { /* check lunch meal */ foreach ($micros_array as $m) { if (empty($rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['breakfast']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['breakfast']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['breakfast']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } else { if (in_array($m['id'], $rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['breakfast']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['breakfast']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['breakfast']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } } } //print_r($micros_diff); $lunch = array_keys($micros_diff, min($micros_diff)); $meals['lunch'] = $lunch[0]; $fmeals['lunch'][$i] = $lunch[0]; unset($micros_diff[$lunch[0]]); } if (!empty($micros_diff)) { /* check dinner meal */ foreach ($micros_array as $m) { if (empty($rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['lunch']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['lunch']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['lunch']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } else { if (in_array($m['id'], $rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['lunch']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['lunch']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['lunch']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } } } //print_r($micros_diff); $dinner = array_keys($micros_diff, min($micros_diff)); $meals['dinner'] = $dinner[0]; $fmeals['dinner'][$i] = $dinner[0]; unset($micros_diff[$dinner[0]]); } if (!empty($micros_diff)) { /* check snack1 meal */ foreach ($micros_array as $m) { if (empty($rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['dinner']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['dinner']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['dinner']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } else { if (in_array($m['id'], $rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['dinner']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['dinner']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['dinner']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } } } //print_r($micros_diff); $snack = array_keys($micros_diff, min($micros_diff)); $meals['snack'] = $snack[0]; $fmeals['snack'][$i] = $snack[0]; unset($micros_diff[$snack[0]]); } if ($per_day_no_of_melas == 5) { if (!empty($micros_diff)) { /* check snack2 meal */ foreach ($micros_array as $m) { if (empty($rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['snack']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['snack']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['snack']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } else { if (in_array($m['id'], $rem_meals)) { if (!in_array($m['id'], $meals)) { $sum = abs(((2 * $protin) - $micros_array[$meals['snack']]['Protein']) - $m['Protein']) + abs(((2 * $fat) - $micros_array[$meals['snack']]['Fett'] - $m['Fett'])) + abs(((2 * $carbo) - $micros_array[$meals['snack']]['Kohlenhydrate'] - $m['Kohlenhydrate'])); $micros_diff[$m['id']] = $sum; } } } } //print_r($micros_diff); $snack1 = array_keys($micros_diff, min($micros_diff)); $meals['snack1'] = $snack1[0]; $fmeals['snack1'][$i] = $snack1[0]; unset($micros_diff[$snack1[0]]); } } //$final_temp = filter_meal($meal, $days_npes_cal,$per_day_no_of_melas); //echo "<pre>8888";print_r($final_temp); //echo "<pre>-new-";print_r($meals); //echo "<pre>-new-";print_r($micros_diff); //echo "<pre>-new-";print_r($fmeals); $i++; if (!empty($micros_diff)) { $flipped = array_keys($micros_diff); $fmeals = select_balance_meals($flipped, $micros_array, $per_day_no_of_melas, $protin, $fat, $carbo, $i, $fmeals); } //return compact('meals', 'micros_diff'); return $fmeals; }