2017-12-18 2 views
1

Ich weiß, dass es Tonnen ähnlicher Probleme gibt, die meinen ähneln, und ich habe ein paar gemischte Antworten bekommen, aber ich bin mir nicht sicher, welcher mit meinem funktioniert, aber meine Foreach gibt nur einen Artikel zurück Mein JSON Api bekomme ich.foreach erhält nur das erste Ergebnis

JSON

{"categoryIndex":0,"page_count":2,"total_count":2,"product_list":[{"type":"EXTRACT","classifications":["SATIVA"],"brand":"BRAND ","description":"","active":true,"taxRate":0.0975,"test_result_url":"","attributes":{"total_doses":0,"mg_dose":"","cbd_ratio":"","total_cannabinoids_percentage":"","general":["ATTRIBUTE 1","ATTRIBUTE 2"],"flavors":["FLAVOR 2","FLAVOR 1"],"effects":["EFFECT 1","EFFECT 2"],"thc_percentage":"-.-","cbd_percentage":"-.-","terpenes_percentage":"-.-","size":"1G","medium":""},"images":{"large_image":"","cropped_image":""},"back_stock_inventory_quantity":510,"menu_title":"","last_update_date":"2017-12-18T09:52:36.842-08:00","secondary_tax_rate":0,"product_id":"39a928e2-ded1-11e7-8088-0a66b72be922","product_name":"STRAIN NAME","live_inventory_quantity":5,"sub_types":["FLOWER ROSIN"],"size_list":[{"barcodes":["dnny"],"type":"EXTRACT","size_id":"39b04857-ded1-11e7-8088-0a66b72be922","size":1,"live_inventory_quantity":5,"product_size_name":"STRAIN NAME","product_unit":"gram","primary_tax_rate":0.0975,"price_sell":36.446469}]},{"type":"MERCH","classifications":[],"brand":"","description":"","active":true,"taxRate":0.0975,"test_result_url":"","attributes":{"total_doses":0,"mg_dose":"","cbd_ratio":"","total_cannabinoids_percentage":"","general":[],"flavors":[],"effects":[],"thc_percentage":"-.-","cbd_percentage":"-.-","terpenes_percentage":"-.-","size":"MEN'S L","medium":""},"images":{"large_image":"","cropped_image":""},"back_stock_inventory_quantity":0,"menu_title":"","last_update_date":"2017-12-18T09:52:36.907-08:00","secondary_tax_rate":0,"product_id":"5bb24bec-e072-11e7-8088-0a66b72be922","product_name":"123","live_inventory_quantity":123,"sub_types":[],"size_list":[{"barcodes":["sLz3"],"type":"MERCH","size_id":"5bb946c2-e072-11e7-8088-0a66b72be922","size":1,"live_inventory_quantity":123,"product_size_name":"123","product_unit":"count","primary_tax_rate":0.0975,"price_sell":112.072893}]}]} 

mein foreach

$response = wp_remote_get("xxx"); 
    $body = wp_remote_retrieve_body($response); 

    $json = json_decode($body); 


    /**** import products****/ 
    $product = array(); 
    $product_variations = array(); 



    if(! empty($json)) { 

     foreach($json->product_list as $key => $producttz) { 

      echo '<a href="'.testlink.'">' . $producttz->product_name . '</a>'; 


      $product[$key]['_product_id'] = (string) $producttz->product_name; 
      $product[$key]['name'] = (string) $producttz->product_name; 
      $product[$key]['description'] = (string) $producttz->product_name; 
      $product[$key]['regular_price'] = (string) $producttz->price_sell; 

      // Stock 
      $product[$key]['manage_stock'] = (bool) $producttz->live_inventory_quantity; 

      $data[$key]['products'] = $product; 



      return $data; } } 

ich dort echo '<a href="'.testlink.'">' . $producttz->product_name . '</a>'; hinzugefügt nur um zu sehen, ob meine foreach durch die Ergebnisse geloopt aber es ist nur die erste Rückkehr und es ist nicht die andere Rückkehr Einsen. Ich weiß, dass es ein paar Lösungen gibt, aber ich bin mir nicht sicher, welche für meine arbeiten wird.

danken Ihnen im fortgeschrittenen

+0

Ihr Ende der ersten Schleife gibt 'return $ data;' was die Schleife beendet und den ersten Datensatz zurückgibt. –

+0

danke! Ich knallte meinen Kopf und las all diese Threads, um herauszufinden, was ich falsch gemacht hatte ... das war einfach! – jgax87

Antwort

4

Es ist, weil return $data; innen foreach() ist, die die Schleife unmittelbar nach der ersten Iteration und nur erste Daten zurückgegeben wird beendet.

Setzen Sie es außerhalb von foreach() Schleife und Sie werden gut zu gehen.

+1

das funktioniert auch zu lol. Ich habe tatsächlich versucht, das {} zu entfernen und das: hinzuzufügen und das endforeach hinzuzufügen; und es hat auch funktioniert ... dieses Ding hat mich acht Stunden gekostet, um herauszufinden, lol – jgax87