我有5个带孩子的菜单。在第一个菜单中,我有16个孩子,第二个22个孩子,第三个10个孩子,堡垒和第五个19个孩子。
每个子菜单都有5行,这些孩子必须在这些行中精美排列。如果可能,每行中的数字相同或更多。
包含16和22个孩子的第一和第二个菜单的示例:
MENU1 第一排4名儿童,第3名3名儿童,第3名儿童3名,第3名儿童3名
MENU2 第一排5名儿童,第二排5名,第三名4名,第四名4名,第五名4名
我的问题是如何创建将在子菜单中添加子项的算法。儿童必须精美安排。如果可能,每行中的数字相同或更多。
答案 0 :(得分:1)
因为我不是100%清楚你的问题中“美丽”的含义,所以我对可接受的内容做了一些假设。
以下代码最多可用于100种菜单配置。
守则:
<?php
$column_range = range(3,6);
#$menu = array(16,22,10,19);
$menu = range(1,100); # showing a range of menu configurations
print_r($menu); print '<hr />';
foreach ($menu as $item){
$beautiful = False;
foreach($column_range as $column_width){
if($item%$column_width==0 && $beautiful==False){
print "$item will be beautiful if you use $column_width per row";
print '<br />';
$beautiful = True;
}
}
if($beautiful==False){
foreach($column_range as $column_width){
if($item%$column_width==1 && $beautiful==False){
print "$item is hard to make beautiful, most rows will have $column_width, however the last row will have 1 one it";
print '<br />';
$beautiful = True;
}
}
}
if($beautiful==False){
foreach($column_range as $column_width){
if($item%$column_width==2 && $beautiful==False){
print "$item is hard to make beautiful, most rows will have $column_width, however the last row will have 2 one it";
print '<br />';
$beautiful = True;
}
}
}
if($beautiful==False){
print "$item what shall i do with you";
print '<br />';
}
}
?>