gpt4 book ai didi

php - 我做了一个可怕的循环....请帮助修复我的逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:14 26 4
gpt4 key购买 nike

我知道我这样做的方式很糟糕...但我很难找到任何替代方案。我有一系列产品,需要随机选择 4 个。 $rawUpsellList 是基于购物车中商品的所有可能加售的数组。每个值都是一个产品对象。我知道这是非常丑陋的代码,但我现在看不到替代方案……有人请让我摆脱痛苦,这样这段代码就不会投入生产……

$rawUpsellList = array();
foreach ($tru->global->cart->getItemList() as $item) {
$product = $item->getProduct();

$rawUpsellList = array_merge($rawUpsellList, $product->getUpsellList());
}

$upsellCount = count($rawUpsellList);

$showItems = 4;
if ($upsellCount < $showItems) {
$showItems = $upsellCount;
}

$maxLoop = 20;
$upsellList = array();
for ($x = 0; $x <= $showItems; $x++) {
$key = rand(0, $upsellCount);
if (!array_key_exists($key, $upsellList) && is_object($rawUpsellList[$key])) {
$upsellList[$key] = $rawUpsellList[$key];
$x++;
}

if ($x == $maxLoop) {
break;
}
}

发布此代码非常尴尬...

最佳答案

实际上,从数组中随机抽取是一个棘手的问题 - even Microsoft had trouble recently .对于我认为不是算法专家但也可能在统计上有偏差的人来说,这是一个不错的代码示例。正如我所说,很难做到这一点。

谢天谢地,PHP 已经有了函数 array_rand ,这似乎做你想做的事:返回从数组中随机选择的 N 个项目。这就是您要找的吗?

$upsellList = array_rand($rawUpsellList, 4);

关于php - 我做了一个可怕的循环....请帮助修复我的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2632029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com