【发布时间】:2014-03-04 20:07:02
【问题描述】:
我有以下功能:
private function generateStructureArray($file) {
$splitData = explode('/', $file);
switch(count($splitData)) {
case 1:
$this->hierarchy[] = $splitData[0];
break;
case 2:
$this->hierarchy[$splitData[0]][] = $splitData[1];
break;
case 3:
$this->hierarchy[$splitData[0]][$splitData[1]][] = $splitData[2];
break;
case 4:
$this->hierarchy[$splitData[0]][$splitData[1]][$splitData[2]][] = $splitData[3];
break;
case 5:
$this->hierarchy[$splitData[0]][$splitData[1]][$splitData[2]][$splitData[3]][] = $splitData[4];
break;
}
Pastebin 版本:http://pastebin.com/B9vU38nY
我想知道是否可以删除此函数的 switch 语句,同时仍然具有相同的结果。 $splitData 的大小有时会超过 20,而 20 大小写的 switch 语句看起来既丑陋又错误。我对 PHP 有很好的了解,但到目前为止我还想不出一种方法来完善这个函数。
【问题讨论】:
-
你不能在 $splitData 上做一个 foreach() 循环吗?
标签: php algorithm function switch-statement case