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