0
votes

PHP Fusionner et grouper les matrices et les résumer

J'ai les matrices suivantes qui renvoient les valeurs basées sur certains calculs: xxx

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.

Comment puis-je y parvenir? La sortie doit être la suivante: xxx

J'ai essayé la fonction suivante, mais elle ajoute toutes les valeurs à une: xxx

me donner la sortie suivante en tant que tableau final: xxx


3 commentaires

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


3 Réponses :


0
votes

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
        )

)


0 commentaires

0
votes

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;
}


0 commentaires

0
votes

Vous pouvez essayer de cette façon. xxx


0 commentaires