मैं उन डुप्लिकेट FamilleArticleName का योग लार्वा में नियंत्रक में कोड प्राप्त करना चाहता हूं:

 $totalFamillyValeur = Article::select('FamilleArticle','ArticleStock','ArticlePrixunit',DB::raw('(articles.ArticleStock*articles.ArticlePrixunit) as Valeur'))
        //->groupBy('FamilleArticle')
        ->get();

    $datavs =[];

    $totalFamillyValeur->map(function ($item) use (&$datavs){
        $datavs[] =$item->Valeur;
    });

    $datapvs =[];
    $totalpervs = array_sum($datavs);

    $totalFamillyValeur->map(function ($item) use (&$datapvs){

        //$dataps["qty"][] =number_format ( ($item->Stock/$totalpers )*100,2);
        $datapvs["FamilleArticleName"][] = $item->FamilleArticle;
        $datapvs["valeur"][] =  number_format ($item->Valeur);
    });

सरणी में परिणाम

 "FamilleArticleName" => array:6 [
0 => "522.52209"
1 => "522.52206"
2 => "515.51511"
3 => "512.51201"
4 => "515.51504"
5 => "515.51504"
]
"valeur" => array:6 [
0 => "7,488"
1 => "750"
2 => "675"
3 => "325"
4 => "1,250"
5 => "1,250"
  ]]

और मैं उन डुप्लीकेट डेटा को पारिवारिक लेख नाम के आधार पर योग और समूहीकृत करना चाहता हूं

इस तरह :

0 => "522.52209"
1 => "522.52206"
2 => "515.51511"
3 => "512.51201"
4 => "515.51504"
]
"valeur" => array:6 [
0 => "7,488"
1 => "750"
2 => "675"
3 => "325"
4 => "2,500"
  ]]
0
SilentK1D 28 जुलाई 2020, 12:48

2 जवाब

सबसे बढ़िया उत्तर

आप array_sumऔर array_column

सबसे पहले, हमें सभी कुंजियों को प्राप्त करना होगा और फिर उन्हें array_sum और array_column के साथ जोड़ना होगा।

$totalFamillyValeur = Article::select('FamilleArticle','ArticleStock','ArticlePrixunit',DB::raw('(articles.ArticleStock*articles.ArticlePrixunit) as Valeur'))
    //->groupBy('FamilleArticle')
    ->get();

$datavs =[];

$totalFamillyValeur->map(function ($item) use (&$datavs){
    $datavs[] =$item->Valeur;
});

$datapvs =[];
$totalpervs = array_sum($datavs);

$totalFamillyValeur->map(function ($item) use (&$datapvs){

    //$dataps["qty"][] =number_format ( ($item->Stock/$totalpers )*100,2);
    $datapvs["FamilleArticleName"][] = $item->FamilleArticle;
    $datapvs["valeur"][] =  number_format ($item->Valeur);
});

// remove duplicate keys
$keys = array_unique($datapvs["valeur"]);

// sum values with same key from $arr and save to $sums
foreach($keys as $key){
  $sums[$key] = array_sum(array_column($datapvs["valeur"],$key));    
}

var_dump($sums);
0
MD. Jubair Mizan 28 जुलाई 2020, 20:30

मुझे पुराने कोड में त्रुटि मिली, मुझे एक योग जोड़ने और समूह का उपयोग करने की आवश्यकता है:

$totalFamillyValeur = Article::select('FamilleArticle','ArticleStock','ArticlePrixunit',DB::raw('(articles.ArticleStock*articles.ArticlePrixunit) as Valeur'))
//->groupBy('FamilleArticle')
->get();

नया कोड:

$totalFamillyValeur = Article::select('FamilleArticle','ArticleStock','ArticlePrixunit',DB::raw('sum(articles.ArticleStock*articles.ArticlePrixunit) as Valeur'))
    ->groupBy('FamilleArticle')
    ->get();

मैंने यह उत्तर पोस्ट किया है यदि कोई दो कॉलमों को एकाधिक करना चाहता है और डुप्लीकेट डेटा को योग करना चाहता है तो वह इसे इस तरह बना सकता है।

0
SilentK1D 29 जुलाई 2020, 13:55