首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅显示最接近随机数的广告

仅显示最接近随机数的广告
EN

Stack Overflow用户
提问于 2019-09-28 22:59:42
回答 1查看 38关注 0票数 2

我得到了这个,我只想显示一个广告,但随机,如果预算更高,它有更多的显示变化。这是我现在的代码:

我已经有一部分,它计算百分比从100%与许多小数,但我迷失在试图显示广告与百分比计算,只显示一个广告。

如果您有任何问题或类似的问题,请随时提问!

代码语言:javascript
运行
复制
@php

$advertisment = DB::table('advertisment')
->orderBy('id', 'desc')
->get();

$totalbudget = 0;
$random = rand(100, 100000000000000);
$random1 = $random / 1000000000000;
echo $random1;
echo '<br><br>';


foreach ($advertisment as $ad) {
    $total = $totalbudget + $ad->budget;
    $totalbudget = $total;
}

// check what advertisment is the closest to the random number given

@endphp
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-28 23:37:57

我想我懂了。如果您的所有广告都有预算,并且您的random1表示百分比(1 - 100),您可以在现有函数中尝试此方法。它仍然会计算出你想要的总数,只需在集合上使用Laravel sum()函数即可。注意,为了清楚起见,我将广告集合重命名为复数。

代码语言:javascript
运行
复制
$totalbudget = $advertisements->sum('budget');

$closest = null;
$closestAd = false
foreach ($advertisements as $ad) {
    // first get percentage of total for this budget:
    $thisPercent = ($ad->budget * 100) / $totalbudget;
    if ($closest === null || abs($random1 - $closest) > abs($thisPercent - $random1)) {
       $closest = $thisPercent;
       $colsestAd = $ad;
    }
}

在循环结束时,您可以获得百分比($closest)、广告本身($closestAd)和预算($closestAd->budget)。

有几个未知数,所以这段代码可能不能准确地工作。请将其作为指南,并进行调整以使其为您工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58147527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档