【问题标题】:Better Way to handle an ordered list of items?处理有序项目列表的更好方法?
【发布时间】:2012-02-15 16:53:29
【问题描述】:

我有需要处理并打印给用户的项目列表。

列表中的每个项目都需要有一组独特的计算。

唯一的一点是,用户还向我提供了如何首先打印和处理项目的顺序 - 例如:item4,item2,item1,item3

如何在 PHP 中解决这个问题?

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

【问题讨论】:

  • 只是澄清一下:您需要对列表中的不同项目应用不同的计算,因此如果列表的顺序是“土豆、胡萝卜、鸡蛋”,您需要将土豆捣碎、去皮胡萝卜煮鸡蛋。最重要的是,它们可能不是按那个顺序排列的(可能是“胡萝卜、土豆、鸡蛋”),但您仍想对每个项目应用适当的计算?

标签: php javascript web


【解决方案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);
}

当然你可以进一步封装它,但它应该会给你这个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-07
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多