Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[Laravel] Hướng dẫn taọ 1 array từ việc tổng hợp nhiều Array lấy từ DB hay API

Posted on July 19, 2021December 9, 2021 By nim No Comments on [Laravel] Hướng dẫn taọ 1 array từ việc tổng hợp nhiều Array lấy từ DB hay API

Ở ví dụ này sẽ khá hiểu:

Đầu tiên bạn có table chứa thông tin Cha và đương nhiên 1 cha có nhiều con
Bạn thực hiện get dữ liệu của các Cha từ DB lên và mỗi cha sẽ có thông tin các con của họ.

Ở đây mình ko dùng quan hệ 1 nhiều trong DB.

Đầu tiên mình khởi tạo 1 array rỗng là array nhà
Mình thực hiện get thông tin cách cha lên
– mình foreach lấy thông tin mỗi cha và đưa vào array nhà
– cũng lúc đó mình kiếm các con của cha rồi có cho vào array nhà thuộc cha nhé

Code ví dụ:

public function show(ClusterService $cluterService,
                        WorkloadService $workloadService,
                        KubecostService $kubecostService,
                        $clusterName)
    {
        $cluster = $cluterService->getClusterByName($clusterName);
        $orphanWorkloads = $workloadService->getAllOrphanWorkloadsByCluster($cluster->cluster_id);
        $inefficientCosts = $kubecostService->getAllInefficientWorkloadsByCluster($cluster->cluster_id);
        $monthlyCostCluster = $kubecostService->getMonthlyCostClusterfromPrometheus($cluster->kubecost_endpoint);
        $namespaces = $workloadService->getNamespaceByCluster($cluster->cluster_id);
        $windowQuery = '1d';
        $aggregateEfficiencies = array();
        foreach ($namespaces as $namespace) {
            if (!in_array($namespace->namespace, config("infra.filters.namespace", null))){
                $aggregateEfficiencyNamespace = $kubecostService->getEfficiencyNamespaceByNamespace($cluster->kubecost_endpoint, $windowQuery, $namespace->namespace);
                $aggregateEfficiencyDeployment = $kubecostService->getEfficiencyDeloymentByNamespace($cluster->kubecost_endpoint, $windowQuery, $namespace->namespace);
                $aggregateEfficiencyStatefulSet = $kubecostService->getEfficiencyStatefulSetByNamespace($cluster->kubecost_endpoint, $windowQuery, $namespace->namespace);
                //push array to other_array
                if (sizeof($aggregateEfficiencyNamespace) > 0) {
                    $aggregateEfficiencies[$namespace->namespace] = $aggregateEfficiencyNamespace[$namespace->namespace];
                    if ($aggregateEfficiencyNamespace[$namespace->namespace]['efficiency'] <= 0.5) {
                        $aggregateEfficiencies[$namespace->namespace]['statusEfficiency'] = 'danger';
                    }elseif ($aggregateEfficiencyNamespace[$namespace->namespace]['efficiency'] < 0.65 && $aggregateEfficiencyNamespace[$namespace->namespace]['efficiency'] > 0.5) {
                        $aggregateEfficiencies[$namespace->namespace]['statusEfficiency'] = 'warning';
                    }else {
                        $aggregateEfficiencies[$namespace->namespace]['statusEfficiency'] = 'success';
                    }
                    $aggregateEfficiencies[$namespace->namespace]['aggregateEfficiencyDeployments'] = $aggregateEfficiencyDeployment;
                    $aggregateEfficiencies[$namespace->namespace]['aggregateEfficiencyStatefulSets'] = $aggregateEfficiencyStatefulSet;
                }
            }
        }
        // echo "<pre>";
        // print_r($aggregateEfficiencies);
        // echo "</pre>";
        // exit();
        return view('cluster.show', [
            'cluster' => $cluster,
            'orphanWorkloads' => $orphanWorkloads,
            'inefficientCosts' => $inefficientCosts,
            'monthlyCostCluster' => $monthlyCostCluster,
            'aggregateEfficiencies' => $aggregateEfficiencies,
        ]);
    }
Coding, Laravel

Post navigation

Previous Post: Đường link hỗ trợ các bạn download khoá học trên udemy free!
Next Post: Hướng dẫn clear hay xoá cache DNS – MAC

More Related Articles

[laravel/Rancher] There are issues when retrieving Kubernetes data from Rancher by Laravel. Laravel
[Telegram] Hướng dẫn tạo 1 con bot nhắn tin trong telegram Coding
[Navicat] For development only Coding
[Git] Look into Git Submodule Coding
Vẽ chart cực đẹp bằng Morris JS và hướng dẫn fix lỗi morris không làm việc trên tab của bootstap Jquery & JavaScript
[Loadtest/vegeta] Why did I choose Vegeta to load test? I like it Coding

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025
  • [WordPress] Hướng dấn gửi mail trên WordPress thông qua gmail. June 15, 2025
  • [Bitbucket] Git Clone/Pull/Push with Bitbucket through API Token. June 12, 2025
  • [Teamcity] How to transfer the value from pipeline A to pipeline B June 9, 2025

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.