2012-02-15 84 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

相關問題