我正在一个ExpressionEngine网站上工作,我有一个循环输出一个排序列表。我想做的是使用PHP输出一个三层深度的列表。
/apples/black/rotten
/apples/green/cortland
/apples/green/cortland
/apples/red/granny
/apples/red/granny
/bananas/green/bad
/bananas/green/bad
/bananas/yellow/good
/bananas/yellow/good
/oranges/orange/tasty
/oranges/yellow/small
/oranges/yellow/small
将其转换为嵌套列表的最佳方法是什么?
显然,这是一个为了说明而制作的列表。这几天我一直想弄明白这个问题,但一直没有找到答案。递归是一个选项吗?
$arr = array();
foreach (file(..., FILE_IGNORE_NEW_LINES) as $line)
{
$tmp = explode("/", substr($line, 1));
for ($i=0; $i<=2; $i++)
{
switch ($i)
{
case 0:
if ( ! isset($arr[$tmp[0]]))
{
$arr[$tmp[0]] = array();
}
break;
case 1:
if ( ! isset($arr[$tmp[1]]))
{
$arr[$tmp[0]][$tmp[1]] = $tmp[2];
}
break;
}
}
}
使用file假设表达式结果存储在文本文件中,
你可以直接迭代它已经在数组