帮助循环使用键和值的数组

时间:2011-05-22 21:16:06

标签: php arrays

我正在尝试使用这个函数从html中提取文本以进行多个步骤,但我无法弄清楚如何形成循环形式。

这是任务。我有这个数组

$arr = array("<div>" => "</div>", "<p>" => "</p>", "<h3>" => "</h3>");

现有的工作函数cut($a, $b, $c),在这种情况下获取其中的内容$a = "<div>", $b="</div>" and $c = the html

我想做的是做到这一点:

  • 第1步 - 从div切换到div
  • 第2步 - 来自step1的foreach结果, 从p切到p
  • 第3步 - 来自step2的foreach结果, 从h3切割到h3
  • 步骤n,其中n是数组长度。

虽然我知道我可以使用foreach来获得结果并应用第二步,但我无法概括这一点。

修改

我有一个名为cut的现有功能,如上所述。我想创建一个名为cutlayer($arr, $html)的新函数,其中$ arr是从上面开始的。我需要cutlayer函数来使用cut函数并执行上面提到的以下步骤,但我无法弄清楚如何做到这一点。

由于

1 个答案:

答案 0 :(得分:3)

省去麻烦并使用专为解析HTML而设计的工具包。 PHP DOMDocument用于完成这些任务。

$dom = new DOMDocument();
$dom->loadHTML($yourHTML);
$divs = $dom->getElementsByTagName("div");

// Get the inner contents of all divs, for example
foreach ($divs as $div) {
  echo $div->nodeValue;
}

除非这是家庭作业,否则你被指示使用你的阵列匹配方法......