鍍金池/ 問答/ PHP問答
不討囍 回答

貌似可以看出一個(gè)數(shù)學(xué)的優(yōu)化問題?;谀愕?strong>離目標(biāo)價(jià)格(5000元)越遠(yuǎn)時(shí),掛單資金越少,越近時(shí)越多的思路,可以進(jìn)行建模:

起始商品價(jià)格為$begin$,最終價(jià)格為$end$,間隔區(qū)間為$delta$,則總共掛單次數(shù)$n$為:

$$ n = \frac{(begin-end)}{delta} + 1 $$

當(dāng)$begin = 6000$, $end = 5000$, $delta = 100$時(shí)代入得$n=11$, 總共掛單11次

起始掛單資金$basic$, 然后逐單增加$extra$。但保證$costlimit$范圍內(nèi),

則全部花費(fèi)$cost$為:
$$ cost = basic + extra * 0 + basic + extra*1 + ... + basic + extra * (n-1) = (n-1) basic + \frac{ extra * n(n-1)}{2}$$

假設(shè)你的花費(fèi)上限為$costlimit$,那么應(yīng)該有
$$ (n-1) basic + \frac{ extra * n(n-1)}{2} \leq costlimit $$

第n次買的商品數(shù)量為第n次的花費(fèi)處以當(dāng)前商品的價(jià)格,也就是
$$ \frac{(basic + extra * (n-1))}{(begin - delta* (n-1))}$$

總共有商品數(shù)量為
$$ \sum_{i=0}^{n-1} \frac{(basic + extra * i)}{(begin - delta* i)} $$

總共商品均價(jià)為
$$ avg\_price = \frac{cost}{amount} $$

也即是:

$$ avg\_price = \frac{(n-1) basic + \frac{ extra * n(n-1)}{2}}{\sum_{i=0}^{n-1} \frac{(basic + extra * i)}{(begin - delta* i)}} $$

你的目標(biāo)就是在
$$ (n-1) basic + \frac{ extra * n(n-1)}{2} \leq costlimit $$

的前提下使得$avg\_price$和最終的價(jià)格$end$差距盡可能小,可以用兩個(gè)價(jià)格差作為標(biāo)準(zhǔn),也可以用$\frac{end}{avg\_price}$ 比例的方式(也就是性價(jià)比)衡量。這里用性價(jià)比:

$$ f = argmax(\frac{ end}{ \frac{(n-1) basic + \frac{ extra * n(n-1)}{2}}{\sum_{i=0}^{n-1} \frac{(basic + extra * i)}{(begin - delta* i)}} } ) \leq 1 $$

當(dāng)你的最終成交均價(jià)就是商品的價(jià)格時(shí)性價(jià)比為1,否則小于1.

你通過調(diào)整一下你的起始價(jià)格$basic$和遞增價(jià)格$extra$,應(yīng)該能找到最佳的方案。

執(zhí)念 回答

為什么不考慮下將base64的字符串分離出來呢,這樣不就可以放到input里面了?

念舊 回答

數(shù)據(jù)庫多出數(shù)據(jù)時(shí),在業(yè)務(wù)邏輯層肯定是有數(shù)據(jù)庫的insert()操作,其實(shí)這個(gè)時(shí)候無需遍歷數(shù)據(jù)庫,就是在插入數(shù)據(jù)的同時(shí),用workman向特定的client_id推送數(shù)據(jù)就可以了。
我之前做了一個(gè)開發(fā)板,因每一秒開發(fā)板向服務(wù)器提交一次數(shù)據(jù),我發(fā)現(xiàn)如果記錄到數(shù)據(jù)庫的話那信息量是非常大的,所以通常只判斷發(fā)生變更的設(shè)置進(jìn)行寫入操作和推送操作,類似實(shí)時(shí)溫度等數(shù)據(jù)是直接讓workman和客戶端進(jìn)行通信的,不再經(jīng)過數(shù)據(jù)庫處理。這只是我曾遇到的問題及解決辦法。僅供參考

櫻花霓 回答

引用傳值

$items 循環(huán)改變的是自身

比如第一次循環(huán)引用傳值變成了 $arr, 第二次循環(huán)也就是循環(huán)的$arr,就等于當(dāng)前循環(huán)的數(shù)組沒每循環(huán)一次,初始數(shù)據(jù)都是上一次循環(huán)的結(jié)果。

第一次變成這樣 以此類推

$arr=[
  [
      "id"=>1,
      "pid"=>0,
      "name"=>'北京市',
      "son"=>[
          [
              "id"=>3,
              "pid"=>1,
              "name"=>"海淀區(qū)"
          ]
      ]
  ],
  [
      "id"=>1,
      "pid"=>0,
      "name"=>'黑龍江省',
  ]
];

鐧簞噯 回答

拆分單元格里的數(shù)據(jù)用php里的正則就可以了。

離魂曲 回答

代碼還沒來得及看就被你的圖片嚇到了

不討囍 回答

不知道你是怎么讀取 APP_NAME 的,我是這么讀取的:

// $appName = env('APP_NAME');
$appName = getenv('APP_NAME');
echo $appName;

006tKfTcgy1fl5v2bdbwxj305q027mx2.jpg

陌離殤 回答

會(huì)不會(huì)是php的端口錯(cuò)了,默認(rèn)是9000吶

冷咖啡 回答

題目是不是說,把某個(gè)字段的非空內(nèi)容,前后都加上 ,
還是說 某個(gè)字段的內(nèi)容可能是以下內(nèi)容

  • "" ,空字符串
  • null
  • asdxcvcxv // 字符串
  • 34 // 字符串?dāng)?shù)字
  • 123,45 // 幾個(gè)字符串?dāng)?shù)字
  • .... // 未知情況。

所以,這個(gè)題目我都沒讀懂。

毀憶 回答

一個(gè)插入語句只能插入一張表。

生性 回答

提示什么錯(cuò)誤?把錯(cuò)誤結(jié)果貼上來

疚幼 回答

https://prettier.io/playgroun...

可以搜索 prettier 這個(gè)插件,上面試提供的在線測(cè)試網(wǎng)址

尋仙 回答

//以id來查找,如果有的話就修改更新,沒有的話就create

            $create_bool =Logistics::updateOrCreate([
                'id' => $model['id'],
            ],[
                'a' => $model['a'],
                'b' => $model['b'],
                'c' => $model['c'],
                'd' => $model['d'],
                'e' => $model['e'],
            ]);
陪妳哭 回答

你先點(diǎn)開wamp,看具體是哪個(gè)服務(wù)沒有啟動(dòng)[php,apache,mysql],然后在相對(duì)應(yīng)的服務(wù)里面找到錯(cuò)誤日志,看報(bào)錯(cuò)信息。

抱緊我 回答

墻內(nèi)找了很長時(shí)間都沒找到,最終還是在google里找到了答案。
文檔的描述不是很清楚,其實(shí)問題在于使用javascript 接入api 認(rèn)證方式應(yīng)該使用默認(rèn)的用戶認(rèn)證 和 web中間件,而不是用passport提供的登錄方式以及 auth:api中間件

  1. 使用laravel默認(rèn)的用戶認(rèn)證,

    php artisan make:auth
  2. 配置文件 config/auth.php 中授權(quán)看守器 guards 的 api 的 driver 選項(xiàng)改為 passport(估計(jì)不改也行,沒有試過,使用javascript接入api的目的是多套應(yīng)用程序公用一套api,所以還是改了)

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
  3. 將 CreateFreshApiToken 中間件添加到 web 中間件組

        protected $middlewareGroups = [
            'web' => [
                ...
                \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
            ],
    
            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];
  4. 訪問 域名/login 登錄
    圖片描述
  5. 登錄成功之后打開控制臺(tái)發(fā)現(xiàn)cookie中會(huì)有l(wèi)aravel_token
    圖片描述
  6. 請(qǐng)求其他接口Header中需要攜帶該cookie 與 X-CSRF-TOKEN,默認(rèn)axios幫我做了這些,下面是postman的示例
    圖片描述
伐木累 回答

一個(gè)form只需一個(gè)hidden input 存放scrf隨機(jī)數(shù),每次載入form 或提交失敗後都會(huì)讀取新的scrf隨機(jī)數(shù)放入這個(gè)input,而這個(gè)scrf隨機(jī)數(shù)應(yīng)交由你的框架生成(當(dāng)然你自己創(chuàng)造一個(gè)生成器也行)。方便的做法是每次載入form或提交失敗時(shí)用ajax取得這個(gè)scrf然後放入input,確保每次提交時(shí)都是正確的scrf隨機(jī)數(shù)。

*這個(gè)scrf應(yīng)該有時(shí)效性,比如設(shè)置成7000,就代表從提交form一刻數(shù)7秒,如超過7秒仍未提交成功則scrf隨機(jī)數(shù)會(huì)過期,form提交失敗。

怣痛 回答
    function test1(data) {
        var temp = "<ul>";

        data.forEach(item => {
            temp += "<li><a>" + item.id + "--" + item.name + "</a></li>";
            if (item.children) {
                temp += test1(item.children)
            }
        })

        temp += "</ul>";
        return temp
    }

    $("#div").html(test1(data2))
墨沫 回答

增加注釋 看行不行

$testClass = '\common\service\test';
/** @var \common\service\test $test */
$test = new $testClass;
$test->aa();