SimpleHTMLDom遍历表迭代

时间:2011-11-29 15:06:25

标签: php arrays dom

我正在使用SimpleHTMLDOM从我的学校名单中获取信息。问题是表结构很难解析,我正在寻求帮助。

表格如下: http://pastebin.com/xg3mRAHw

代码如下所示: http://pastebin.com/gWW7WyDA

结果看起来像这样(还包括我希望结果看起来像!):

当前格式:

array
  3 =>
    array
      '28-11-2011' =>
        array
          0 => string '08.45-10.30 ' (length=12)
          1 => string 'CMD-1 HC interaction design' (length=27)
          2 => string 'CMD-1vt-p2.01 - CMD-1vt-p2.18 ' (length=30)
          3 => string 'OVk45' (length=5)
          4 => string 'J.P. van Leeuwen' (length=16)
          5 => string '10.30-12.15 ' (length=12)
          6 => string 'CMD-1 Training samenwerken' (length=26)
          7 => string 'CMD-1vt-p2.09 - CMD-1vt-p2.10 ' (length=30)
          8 => string 'SL433' (length=5)
          9 => string 'B. Hartman' (length=10)

通缉格式:

array
  3 =>
    array
      '28-11-2011' =>
        array
          0 =>
            array
              'time' => string '08.45-10.30 ' (length=12)
              'name' => string 'CMD-1 HC interaction design' (length=27)
              'group' => string 'CMD-1vt-p2.01 - CMD-1vt-p2.18 ' (length=30)
              'place' => string 'OVk45' (length=5)
              'teacher' => string 'J.P. van Leeuwen' (length=16)
          1 =>
            array
              'time' => string '10.30-12.15 ' (length=12)
              'name' => string 'CMD-1 Training samenwerken' (length=26)
              'group' => string 'CMD-1vt-p2.09 - CMD-1vt-p2.10 ' (length=30)
              'place' => string 'SL433' (length=5)
              'teacher' => string 'B. Hartman' (length=10)

问题是我不明白如何使用(仅)SimpleHTMLDOM来获得此结果。我确信我在这里遗漏了一些东西,因为我接近了阵列的最终标记。让它实际显示为未来示例的最后一步是我无法工作的东西。

有人可以给我一些关于如何按照我想要的方式继续获取数组的提示吗?我一直在看XSL,但此时对我来说太复杂了。

1 个答案:

答案 0 :(得分:1)

您还需要对tr数组进行分段。

$count = 0;
foreach ($table as $tr) {
...
   $output[$info['week']][$info['date']][$count] = array();
   $count++;
...
$output[$info['week']][$info['date']][$count][] = $td->innertext;

现在,对于'时间',' name',' group'等值,我不会在xml的任何地方看到它们,所以我猜你只需要在追加td->innertext时保持内部计数。