2015-05-11 86 views
-2

我指望的部分元素的數量,它是一個偶數像34,我想將它們分成三個邏輯組,如:PHP:分割奇數分成三組

  • 組1:1至12(12項)
  • 第2組:13-24(12項)
  • 組3:25-34(10項)

我想要的PHP代碼邏輯上創建三組項目前兩套可以容納相同數量的物品,其餘的可以放入最後一套。 不會超過三套。

$whole_elements=33; 
$group1 = ($whole_elements)/3; 

這種代碼是行不通的,因爲它會返回帶小數點的值。

+0

發生了什麼事'21'?不應該是'21-30',那麼下一個應該是'31-33'? – Ghost

+0

它還是有些不可思議,如果你打算十的削減它,然後它不應該是'1-10,11-20,21-30,31-33'所以總而言之4組。 group3應該是'21-30(10項)' – Ghost

+0

如果'whole_elements'是25呢?你想要10 + 10 + 5或8 + 8 + 9或9 + 9 + 7?順便說一句,對downvoters,我認爲這是一個有趣的問題,但非常制定 – Capsule

回答

0

你應該除以3的號碼,輪結果獲得前2個號碼,然後。減去2個第一號形成總得到最後一個:

<?php 
$whole_elements=34; 
$group1 = $group2 = round($whole_elements/3); 
$group3 = $whole_elements - ($group1*2); 
?> 

然後獲得「團體」被切原數組的問題:

<?php 
$group1_array = array_slice($original_array, 0, $group1); 
$group2_array = array_slice($original_array, $group1, $group1); 
$group3_array = array_slice($original_array, -$group3); 
?> 

事實上,使用這種方法,你就不需要確定$group2在代碼的第一位,因爲它是一樣$group1

0
$whole_elements = 34; 

$third = ceil($whole_elements/3); 
$group1 = $group2 = $third; 
$group3 = $whole_elements - 2*$third; 
echo 'one: ' . $group1 . '<br/>two: ' . $group2 . '<br/>three: ' . $group3; 

之一:12
二:12
三:10