パブリック関数tt_add(){ $ RES = $ この - > arr_avg(20は、14 ); エコーarray_sum($ RES); エコー' ---- ' COUNT($ RES);. ダンプ($ RES); 出口; } / * ** * @param額$「合計」 * @paramの$回数のデータの数を分割する必要がある" * @returnアレイ|二つに最小標準標準偏差、平均回数分割をばらばらにするミックス「の合計額整数' * / パブリック関数arr_avg($量$数) { $ avg_num = $ AMOUNT / $ COUNT; $ ceil_num = CEIL($のAMOUNT /$カウント)。 もし($ avg_num == $のceil_num){ $ avg_res = array_fill(0、$回数、(int型)$ ceil_num)。 } 他{ 場合($量< $カウント){ $ avg_res_1 = array_fill(0、$量(INT)$ ceil_num)。 // 这里只会填充1 $ avg_res_2 = array_fill($量- 1、$カウント- $量、0 ); $ avg_res = dealed_array_merge($ avg_res_1、$ avg_res_2)。 } 他{ $ floor_num =フロア($量/ $数); $ avg_res = array_fill(0、$回数、(int型)$ floor_num)。 $ left_num = $量- array_sum($ avg_res)。 もし(1 <= $ {left_num) $ left_avg_res = $ この - > ; arr_avg($ left_num、$数) foreachの($ left_avg_res として $ K => $ V){ 場合($のVの== 0 ){ 解除($ left_avg_res [$ K])。 } } 解除($のV); $ left_avg_res = array_values($ left_avg_res); $ avg_res = $ この - > array_add(avg_res $、$ left_avg_res); } } } 戻り$ avg_resを; } / * ** * @param $ A * B $の@param 「一緒に2一次元アレイ、同じキーを追加して、異なる平均滞留」* @returnミックス * / パブリック関数($、$ B)をarray_add { // キーの取得二つの配列交差点 の$ ARR = array_intersect_key($、$のB); //キー名は、最初の配列に、第一の配列と配列要素を存在しない場合、二番目の配列を横切ります foreachの($ B AS $キー=> $値){ IF(!{array_key_exists(キー$、A $)) $ A [キー$] = $値; } } //はキーと同じ配列要素を計算し、同じキー名は、の値に対応する配列内の元の要素置き換え foreachの($ ARR aSに $キー=> $値){ $ [$キー] = $ A [$キー] + ; $ B [$キー] } // 戻りますまた、アレイの後に リターンの$ A; }
例:AMOUNT:20 COUNTである:14
20である8 ----。
<PRE>アレイ(8){
[0] =&GT。INT(3)
[1] =&GT。INT(3)
[2] =&GT。INT(3)
[3] =&GT。INT(3)
[4] =&GT。INT(2)
[5] =&GT。INT(2)
[6] =&GT。INT(2)
[7] =&GT。INT(2)
}
</ PRE>
例:金額:20は、カウント:20
20 ---- 20
<PRE>アレイ(20){
[0] =&GT。INT(1)
[1] =&GT。INT(1)
[2] =&GT。INT(1)
[3] =&GT。INT(1)
[4] =&GT。INT(1)
[5] =&GT。INT(1)
[6] =&GT。INT(1)
[7] =&GT。INT(1)
[8] =&GT。INT(1)
[9] =&GT。INT(1)
[10] =&GT。INT(1)
[11] =&GT。INT(1)
[12] =&GT。INT(1)
[13] =&GT。INT(1)
[14] =&GT。INT(1)
[15] =&GT。INT(1)
[16] =&GT。INT(1)
[17] =&GT。INT(1)
[18] =&GT。INT(1)
[19] =&GT。INT(1)
}
</ PRE>
例:金額:20は、カウント:22
20 ---- 22
<PRE>アレイ(22){
[0] =&GT。INT(1)
[1] =&GT。INT(1)
[2] =&GT。INT(1)
[3] =&GT。INT(1)
[4] =&GT。INT(1)
[5] =&GT。INT(1)
[6] =&GT。INT(1)
[7] =&GT。INT(1)
[8] =&GT。INT(1)
[9] =&GT。INT(1)
[10] =&GT。INT(1)
[11] =&GT。INT(1)
[12] =&GT。INT(1)
[13] =&GT。INT(1)
[14] =&GT。INT(1)
[15] =&GT。INT(1)
[16] =&GT。INT(1)
[17] =&GT。INT(1)
[18] =&GT。INT(1)
[19] =&GT。INT(1)
[20] =&GT。INT(0)
[21] =&GT。INT(0)
}
</ PRE>