使用subloop循环遍历数组以在PHP中创建子部分

时间:2016-04-19 01:05:28

标签: php loops

我有一个看起来像这样的表:

Type Description
color red
color blue
color yellow
shape circle
shape square
animal dog
animal cat
animal bird
animal cow

在PHP中,我需要遍历它并像这样渲染它:

Color
  red
  blue
  yellow


Shape
  circle
  square


Animal
  dog
  cat
  bird
  cow

我相信我需要使用一个While循环,然后以某种方式在while循环中使用subloop。 以这种方式呈现数据的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

假设您的表位于名为input.txt的文件中,该文件位于php脚本所在的同一文件夹中:

$fp = fopen('input.txt', 'r') or die('I cannot find your file');
while(false !== ($line = fgets($fp))) {
    $chunks = explode(" ", trim($line));

    if (count($chunks) < 2) {
       continue;
    }
    $chunks = array_values(array_filter($chunks));
    $output[ucfirst($chunks[0])][] = $chunks[1];
}
unset($output['Type']);


foreach ($output as $type=>$elements) {
    echo $type . PHP_EOL;
    foreach ($elements as $element) {
        echo "\t" . $element . PHP_EOL;
    }
}