第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 7.2 和 Prestashop 1.7 上導(dǎo)出 XML 多個值時出現(xiàn)問題

在 PHP 7.2 和 Prestashop 1.7 上導(dǎo)出 XML 多個值時出現(xiàn)問題

PHP
江戶川亂折騰 2023-04-28 14:53:39
我正在嘗試將產(chǎn)品從 Prestashop 1.7 導(dǎo)出到 XML。一切正常,但腳本多次導(dǎo)出產(chǎn)品,具體取決于所屬類別。例如 Product1 在 All products - Clothes - Men 中,在這種情況下將以 XML 導(dǎo)出 3 次。我嘗試使用基于產(chǎn)品 ID 的 array_unique,但它不起作用。有人可以給我指出正確的方向嗎?完整的代碼可以在這里找到: https: //pastebin.com/MQxfYSj2在這部分代碼中,我嘗試使用 array_unique 但沒有結(jié)果: private function getProductFromArray($arrProduct){    $objProduct = new Okazii_Connector_Product();    $objProduct->ID = $arrProduct['id_product'];    $objProduct->UniqueID = $arrProduct['id_product'];    $objProduct->Title = $arrProduct['name'];    if (mb_strlen($arrProduct['description']) > 3){        $objProduct->Description = $arrProduct['description'];    } else if (mb_strlen($arrProduct['description_short'])) {        $objProduct->Description = $arrProduct['description_short'];    } else {        $objProduct->Description = $arrProduct['name'];    }    $objProduct->Amount = $arrProduct['quantity'];    if ($objProduct->Amount == 0){        $objProduct->Amount = $this->getAmountFromStock($arrProduct['id_product']);    }    $objProduct->Category = $this->getCategoryString($arrProduct['id_category']);    $objProduct->Currency = $this->getCurrency();    $objProduct->Price = $arrProduct['price'];    if(!empty($arrProduct['available_now']) && $objProduct->Amount > 0)    {        $objProduct->InStock = $arrProduct['available_now'];    }    if(!empty($arrProduct['gtin']))    {        $objProduct->GTIN = $arrProduct['gtin'];    }    else if(!empty($arrProduct['ean13']))    {        $objProduct->GTIN = $arrProduct['ean13'];    }    else if(!empty($arrProduct['isbn']))    {        $objProduct->GTIN = $arrProduct['isbn'];    }    $this->setProductImages($objProduct);    $this->setProductBrand($objProduct, $arrProduct['id_manufacturer']);    return $objProduct;}我還嘗試在腳本頂部僅獲取基于產(chǎn)品 ID 的唯一產(chǎn)品,但效果不佳。其他有用信息:PHP 7.2、Prestashop 1.7.6.5
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗 獲得超8個贊

嘗試在類的最開始創(chuàng)建一個屬性,例如


private $exportedProductsIds = [];


然后在每次迭代之后,在返回之前將導(dǎo)出的產(chǎn)品 ID 放入其中


array_push($this->exportedProductsIds, $objProduct->id);

然后在運行前添加驗證,如果 id 已經(jīng)在$exportedProductsIds然后跳過迭代


if (!in_array($objProduct->id, $this->exportedProductsIds)) {

   //run your code

}

但我認(rèn)為放置此代碼的最佳位置是您調(diào)用getProductFromArray方法的地方。


我假設(shè)是這樣的


private function exportProducts($products)

{

     foreach ($products as $product) {

         if (in_array($objProduct->id, $this->exportedProductsIds)) {

             continue;

         }

         if ($this->getProductFromArray($arrProduct)) {

             array_push($this->exportedProductsIds, $objProduct->id);

         }

     }

}


查看完整回答
反對 回復(fù) 2023-04-28
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號