Php 处理有序项目列表的更好方法?

Php 处理有序项目列表的更好方法?,php,javascript,web,Php,Javascript,Web,我有需要处理和打印给用户的项目列表 列表中的每个项目都需要有一组唯一的计算 唯一的问题是,用户还向我提供了如何首先打印和处理项目的顺序-例如:item4、item2、item1、item3 如何在PHP中实现这一点 我考虑对用户提交的有序列表运行for循环,处理每个计算并将其打印给用户,问题是这将很难维护,因为用户每次要添加新项目或计算时都必须编辑for循环 给定1-n个项目的列表: $items['item1'] = $item1; 与1-n功能相关的列表: $functions['item

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

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

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

如何在PHP中实现这一点


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

给定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);
}

当然,您可以进一步对其进行封装,但它应该会给您一个想法。

给出一个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);
}

当然,您可以进一步将其封装起来,但它应该会给您一个想法。

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