摘要:我要獲得盡可能理想的數(shù)據(jù),那么應該分別返回條。我總共需要條數(shù)據(jù),數(shù)據(jù)庫中滿足條件的有類數(shù)據(jù),他們總數(shù)分別是條。上面的代碼就實現(xiàn)了這一目的。
話不多說,上代碼,不懂原理與目的可以對照注釋
/** * 根據(jù)給定的總數(shù)值返回每個單元的最值平均數(shù) * * @param integer $num 總共需要被平均的值 * @param array $data 提供的數(shù)據(jù) * * @example $num = 12 * $data = [ * "a" => 5, * "b" => 6, * "c" => 2, * ] * * @return [ * "a" => 5, * "b" => 5, * "c" => 2, * ] */ if (! function_exists("get_avg_data")) { function get_avg_data($num, array $data) { $sum = array_sum($data); // 如果數(shù)組內(nèi)小于需要數(shù)值 if ($num >= $sum){ $reData = $data; } else { asort($data); $reData = handle_avg_data($num, $data); } return $reData; } } // 處理數(shù)據(jù) if (!function_exists("handle_avg_data")){ function handle_avg_data(&$num, array &$data) { $n = count($data); $avg = (int)($num / $n); $y = $num % $n; $reData = []; $preData = $data; foreach ($data as $key => $value) { if ($value <= $avg){ $reData[$key] = $value; unset($data[$key]); $num = $num - $value; } } if (count($preData) == count($data)){ if ($y == 0){ foreach ($data as $k => $v){ $reData[$k] = $avg; unset($data[$k]); } } else { foreach ($data as $k => $v){ $reData[$k] = $avg + 1; $num = $num - $avg - 1; unset($data[$k]); break; } } } $reD = []; if (count($data) > 0){ $reD = handle_avg_data($num, $data); } return array_merge($reData, $reD); } }
好吧,再舉一個例子eg①:我總共需要30條數(shù)據(jù),數(shù)據(jù)庫中滿足條件的有4類數(shù)據(jù),他們總數(shù)分別是4,5,15,19條。
我要獲得盡可能理想的數(shù)據(jù),那么應該分別返回 4,5,11,10條。
eg②:我總共需要30條數(shù)據(jù),數(shù)據(jù)庫中滿足條件的有4類數(shù)據(jù),他們總數(shù)分別是12,6,15,19條。
我要獲得盡可能理想的數(shù)據(jù),那么應該分別返回 8,6,8,8條。
……
上面的代碼就實現(xiàn)了這一目的。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28307.html
摘要:軟刪除當模型被軟刪除后,它們并沒有真的從數(shù)據(jù)庫刪除,而是在模型上設置一個屬性并插入數(shù)據(jù)庫,如果模型有一個非空值,那么該模型已經(jīng)被軟刪除了。 Laravel 中Eloquent ORM 相關操作 定義 操作 獲取(查詢) 獲取集合,(查詢列表) 返回值是 IlluminateDatabaseEloquentCollection 的一個實例 獲取所有的數(shù)據(jù) use AppUser; $us...
摘要:前言集合通過進行實例,的內(nèi)核大部分的參數(shù)傳遞都用到了集合,但這并不代表集合就是好的。當你需要處理一組數(shù)組時,你可能就需要它幫助你快捷的解決實際問題。例如我們需要通過一個水平線切分數(shù)組,將其分為個及以上的數(shù)組個數(shù)。謝謝,還不抓緊去練習下集合 showImg(https://segmentfault.com/img/bVbhjvY?w=600&h=296); 前言 集合通過 Illumin...
摘要:傳統(tǒng)方法比如說你想監(jiān)控你容器的內(nèi)存使用率。不支持維度數(shù)據(jù),這樣一個名為的容器的指標,可能被稱為。這是非常偉大并且有用的,但是有限制性。這個輸出器使用容器的名字,和鏡像作為維度。 本文的原作者是 johannes-fish-ziemke,原文地址是 http://5pi.de/2015/01/26/monitor-docker-containers-with-prometheus/...
閱讀 3236·2021-11-24 10:43
閱讀 4197·2021-11-24 10:33
閱讀 3771·2021-11-22 09:34
閱讀 2125·2021-10-11 10:58
閱讀 3732·2021-10-11 10:58
閱讀 859·2021-09-27 13:36
閱讀 3579·2019-08-30 15:54
閱讀 2965·2019-08-29 18:41