类似于上图,这是一个30人组成的没有塔尖金字塔结构,现在需要从红线处分裂成两个小金字塔。
这30个人都是从数据库中遍历出来的,是按照时间顺序从上到下从左到右进行排列的。
本来我是想着利用单双数进行分裂,但是单双数分裂的话不是从红线处对等分裂的,而是每隔一个分裂一个,然后再把所有的单数和双数重组成两个新的金字塔。但是这样的单双数却并不是从红线处分裂的。
不知道思路上像这样的分裂应该怎么处理?
$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30);echo '<div align=center>';for($i=0,$n=2; $i<count($a); $i+=$n,$n*=2) { echo join(' ', array_slice($a, $i, $n)), '<br>';}echo '</div>';for($i=0,$n=2; $i<count($a); $i+=$n,$n*=2) { list($r[], $l[]) = array_chunk(array_slice($a, $i, $n), $n / 2);}echo '<div align=center>';foreach($r as $v) echo join(' ', $v), '<br>';echo '</div>';echo '<div align=center>';foreach($l as $v) echo join(' ', $v), '<br>';echo '</div>';