2012-02-15 42 views
1

我有需要处理并打印到用户的项目列表。更好的方式来处理项目的有序列表?

列表上的每个项目都需要一组唯一的计算。

唯一的一点是,用户还提供我的项目将如何打印&优先处理的顺序 - 例如:ITEM4,项目2,项目1,项目3

哪有一个方法,这在PHP?

我想到了针对用户提交的有序列表运行for循环,并处理每个计算并将其打印到用户,问题是这将难以维护,因为用户每次都必须编辑for循环他会想添加一个新的项目或计算。

+1

只是澄清:你需要对列表中的不同项目应用不同的计算,所以如果列表的顺序是“马铃薯,胡萝卜,鸡蛋”,你会想要捣碎马铃薯,剥开胡萝卜,煮沸蛋。最重要的是,它们可能不是这样的顺序(可能是“胡萝卜,土豆,鸡蛋”),但是你仍然想对每个项目应用适当的计算? – Joe 2012-02-15 16:57:13

+0

是啊乔你说得对 – Tzvi 2012-02-15 16:58:30

回答

1

鉴于1-n项的列表:

$items['item1'] = $item1; 

随着1-N功能的协同相关列表:

$functions['item1'] = function($item) {return ...;}; 

您可以根据用户输入的项目进行排序:

$subset = orderAndFilterItems($items, $userInput); 

,然后遍历:

foreach($subset as $key => $item) 
{ 
    $function = $functions[$key]; 
    $value = $function($item); 
} 

当然,你可以将其进一步封装,但它应该给你的想法。

+0

谢谢!惊人的答案 – Tzvi 2012-02-15 17:33:41

相关问题