我有一个动态数量的项目,我需要将其分成列.比方说我得到了这个:
array("one", "two", "three", "four", "five", "six", "seven", "eight")
我需要生成这个:
- one
- two
- three
- four
- five
- six
- seven
- eight
以下是一些规则:
>如果没有物品,我不想要任何东西吐出来
>如果有16个或16个以下的项目,则id为4个项目,每个< ul>
>如果有超过16个项目,我希望它能够均匀分布
>我将按字母顺序重新排序项目.如果有17个项目,则第17个项目需要转到第一列,但所有内容都需要重新排序.
到目前为止我所拥有的:
function divide( $by, $array ) {
14 $total = count( $array );
15 $return = array();
16 $index=0;
17 $remainder = $total % $by !== 0;
18 $perRow = $remainder ?
19 $total / $by + 1:
20 $total / $by
21 ;
22
23 for ( $j = 0; $j
24 //$return[] = array();
25
26 if ( $index == 0 ) {
27 $slice = array_slice( $array, 0, $perRow );
28 $index = $perRow;
29 $return[$j] = $slice;
30 } else {
31 $slice = array_slice( $array, $index, $perRow );
32 $index = $index+$perRow;
33 $return[$j] = $slice;
34 }
35 }
}
我输入一个数字,比如divide(4,$arrRef),数字决定列的数量,但是我需要重构,所以它决定了列数