按字母表列出,将包含少量条目的字母组合在一起(PHP或JS)

Mos*_*atz 5 javascript php html-lists alphabetical

我正在开发一个包含很长名单的Web应用程序.客户端最初希望将名称拆分为divs,这样就很容易跳转到列表中的特定名称.

现在,查看列表,客户端指出了几个只有一个或两个与之关联的名称的字母.他现在想知道如果每个字母中只有几个名字,我们是否可以组合几个连续的字母.

(请注意,根本不显示没有名字的字母.)

我现在做的是让数据库服务器返回一个排序列表,然后保留一个包含当前字符的变量.当我到达每个字母时,我会浏览名称列表,递增字符并打印开始和结束div以及ul标记.我知道如何调整这些代码来组合一些字母,但是,我不确定如何处理的一件事是字母的特定组合是否是最好的.换句话说,说我有:

  • A - 12个名字
  • B - 2个名字
  • C - 1个名字
  • D - 1个名字
  • E - 1个名字
  • F - 23个名字

我知道如何最终成为一个团队A-C,然后独自拥有D.我正在寻找的是一种有效的方式来实现A应该是它本身然后B-D应该在一起.

我不确定从哪里开始看这个.

如果它有任何区别,此代码将用于Kohana框架模块.


更新2012-04-04:

这是对我需要的澄清:

假设组中我想要的最小项目数是30.现在说字母A有25个项目,字母B,C和D,每个有10个项目,字母E有32个项目.我想单独留A,因为结合B + C + D会更好.组合它们的简单方法是A + B,C + D + E - 这不是我想要的.

换句话说,我需要最接近每组最小值的最佳拟合.

Spr*_*ofi 1

如果一封信包含超过 10 个姓名,或者您设置的任何合理限制,请勿将其与下一个姓名合并。但是,如果您开始组合字母,则可以让它运行直到收集到 15 个左右的名称(如果您愿意),只要单个字母不超过 10 个即可。这不是通用解决方案,但这是我解决问题的方法。