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个执行报价,对吗?看看这个