v2.5.2
Giriş yap

Async foreach loop

polev
403 defa görüntülendi

Merhaba, API tarafında aşağıda bulunan parça ile ürün durumu kontrol ediyorum.Ancak ürün listelemesi artınca bu işlemde hayli geç cevap döndürmekte.Senkronizasyon olarak ilk işlem bitmeden istek gönderemiyorum apiye. Bu konuda yardımınıza ihtiyacım var. Teşekkürler ..

    $productList = array();
                $productIdList = array();
                $menuList = $getir->menuList();
                foreach ($menuList["response"] as $keys) {
                    foreach ($keys["menuSubCategories"] as $product) {
                        foreach ($product["menuProducts"] as $val) {
                            if ($val["status"] == 200 || $val["status"] == "200") {
                                array_push($productList, $val);
                            }
                        }
                    }
                }
                foreach ($productList as $keys) {
                    $array = [
                        "id" => $keys["id"],
                        "status" => $keys["status"],
                        "price" => $keys["price"]
                    ];
                    array_push($productIdList, $array);
                }
                $productRowCount = false;
                foreach ($productIdList as $prod) {
                    if ($prod["price"] == $Description["price"]) {
                        $pro = $getir->getMenuProduct($prod["id"]);
                        foreach ($pro["response"]["barcodes"] as $productBarcode) {
                            if ($productBarcode == $barcode) {
                                $productRowCount = true;
                                if ($Json["status"] == "true") {
                                    $status = 100;
                                    $statusMessage = "Ürün başarıyla satışa açıldı!";
                                } else {
                                    $status = 200;
                                    $statusMessage = "Ürün başarıyla satışa kapatıldı!";
                                }
                                $array =
                                    [
                                        'status' => $status
                                    ];
                                
                            }
                        }
                    }
                }
                if ($productRowCount == false) {
                    $JSON = [
                        "status" => "warning",
                        "message" => "Ürün onay bekliyor!"
                    ];
                }
munzevi
937 gün önce

tam sınıf yazacaktım, ama dosyada önceden tanımlanmış ve nereden geldiği belli olmayan bazı değişkenler vardı bende kaba taslak aklımdakini örnekledim. print_r ile bi çıktı alsaydın muhtemelen tam çalışır birde örnek verebilirdim, birde $Json gibi dosyada belirtilmemiş değişkenlerin nereden geldiği net olsaydı.

class getir {
    public function MainArr($val){
        $productList = array();
        $productIdList = array();
        /*
        burada üç tane iç içe döngü var normalde print_r ile çıktı versen ona göre döngü oluşturabilirdim, döngüyü sen oluşturursun artık
        
        */
        foreach($val as $v){
            $productList[] = $val;
            $productIdList[] = [
                "id" => $val["id"],
                "status" => $val["status"],
                "price" => $val["price"]
            ];
        }
        return array ('list' => $productList, "id" => $productIdList);
    }
    public function Check($val){
        /* buraya son döngüde gerçekleşen koşullar için bir desen oluştur
        bu tek koşulu gerektiği kadar çoğalt
        */
        return $val["status"] == "true" ? 100 : 200;
    }
    public function RetrunStat(){
        foreach($this->MainArr($value)["id"] as $val){
            $val = $this->Check($degisken);
        }
    }
}