Php 如何循环数组并夹住相等的部分?

Php 如何循环数组并夹住相等的部分?,php,arrays,Php,Arrays,我有一个数组,我正在循环以保存数据 问题是有时阵列非常大 我想循环这个数组直到达到一个极限 一旦它通过了这个限制,它应该计算出它还剩下多少来完成所有数组的循环,然后扔掉它并完成它 foreach ($offers as $offer){ //If have more the 8.000 then make more then one array_objects $object_offer = new Offer(); $object_offer->setOfferS

我有一个数组,我正在循环以保存数据

问题是有时阵列非常大

我想循环这个数组直到达到一个极限

一旦它通过了这个限制,它应该计算出它还剩下多少来完成所有数组的循环,然后扔掉它并完成它

foreach ($offers as $offer){
    //If have more the 8.000 then make more then one array_objects
    $object_offer = new Offer();
    $object_offer->setOfferSellerId($offer['sku']);
    $object_offer->setQuantity($offer['quantity']);
    $object_offers[] = $object_offer;
    $i++;
    if (count($offers) <= 8000 ){
        if ($i >= count($offers)){
            $this->invokeUpdateStockOffer($object_offers);
        }
    } else {
        //Chunck it in some ways and save
        $this->invokeUpdateStockOffer($object_offers);
    }
}
foreach($offers as$offer){
//如果有更多的8.000,则制作多个数组\u对象
$object_offer=新的offer();
$object_offer->setOfferSellerId($offer['sku']);
$object_offer->setQuantity($offer['quantity']);
$object\u offer[]=$object\u offer;
$i++;
如果(计数($offers)=计数($offers)){
$this->invokeUpdateStockOffer($object\u offers);
}
}否则{
//用一些方法来改变它,然后保存它
$this->invokeUpdateStockOffer($object\u offers);
}
}

请帮忙

您可以使用PHP
array\u chunk
方法将您的优惠分成8000组

例如,您有一个包含8个值的数组
[1,2,3,4,5,6,7,8]
,并且希望将它们分组为2个批次

$array = [1,2,3,4,5,6,7,8];
$chunked = array_chunk($array, 2);
现在,
$chunked
变量将包含4个数组

[
    [1,2],
    [3,4],
    [5,6],
    [7,8],
]
这就是您想要做的,这样您就可以将报价批处理到可管理的块中。然后,您可以迭代每个8000块,并在每个块之后更新股票报价

<?php
// Chunk the offers into batches of 8000
$batches = array_chunk($offers, 8000);
// Iterate over each chunk
foreach ($batches as $batchOffers) {
    // Process the offers and store them in the array
    $objectOffers = [];
    foreach ($batchOffers as $offer) {
         $objectOffer = new Offer();
         $objectOffer->setOfferSellerId($offer['sku']);
         $objectOffer->setQuantity($offer['quantity']);
         $objectOffers[] = $objectOffer;
    }
    // Update the offers
    $this->invokeUpdateStockOffer($objectOffers);
}

Hi Gache,听起来你想一批8000个执行报价,对吗?看看这个