J'ai les matrices suivantes qui renvoient les valeurs basées sur certains calculs: La sortie de réseau ci-dessus est extraite et maintenue par différentes variables. Je voudrais fusionner / regrouper les tableaux en fonction du plan de voyage et résumera en même temps les taux de prime pour tous les projets de voyage similaires. Pour qu'il n'y ait qu'un seul tableau par plan de voyage et une somme du prix de prime par plan de voyage. P> Comment puis-je y parvenir? La sortie doit être la suivante: p> J'ai essayé la fonction suivante, mais elle ajoute toutes les valeurs à une: p> me donner la sortie suivante en tant que tableau final: p>
3 Réponses :
array_merge (array1, array2, ....) code> sera votre réponse.
Voici un exemple.
Array
(
[0] => Array
(
[travel_plan ] => Schengen
[premium_price ] => Rs 1,200
)
[1] => Array
(
[travel_plan ] => Business
[premium_price ] => Rs 1,300
)
[2] => Array
(
[travel_plan ] => Senior
[premium_price ] => Rs 1,600
)
)
Cette logique résoudra 90% de votre problème tout ce que vous avez à faire est d'extraire la limite supérieure et des limites inférieures.
$bigArray = array_merge($adult_array, $senior_array, $children_array); $BusinessTravels = sortByTravelPlan('Business', $bigArray); $StudentTravels = sortByTravelPlan('Student', $bigArray); $SeniorTravels = sortByTravelPlan('Senior', $bigArray); $SchengenTravels = sortByTravelPlan('Schengen', $bigArray); print_r($BusinessTravels); print_r($StudentTravels); print_r($SeniorTravels); $finalResult = array_merge($BusinessTravels, $StudentTravels, $SeniorTravels, $SchengenTravels ); function sortByTravelPlan($type, $bigArray){ $Array = []; foreach ($bigArray as $key => $value) { if($value['travel_plan'] == $type){ array_push($Array, $bigArray[$key]); } } return processArray($Array); } function processArray($array){ $result = []; $prev_price = null; $max_age = null; foreach ($array as $key => $value) { $result['travel_plan'] = $value['travel_plan']; if($value['premium_price'] > $prev_price){ $result['premium_price'] = $value['premium_price']; } } $result['upper_limit'] = 30; $result['lower_limit'] = 0; $result['no_travellers'] = count($array); return $result; }
Vous pouvez essayer de cette façon.
Serait plus facile si vous pouvez fournir des données d'exemple de ce que vous voulez réaliser.
Veuillez ajouter votre code d'effort de votre code ce que vous avez essayé jusqu'à présent.
[4] => Array ([Voyage_Plan] => Senior [Premium_Price] => 5740.205 [Éligibilité] => Jusqu'à 30 ans [Lower_limit] => 0 [Upper_Limit] => 30 [NO_TRavellers] => 1) Expliquez le calcul de prime_price pour obtenir "5740.205" dans le tableau