使用simple_html_dom记录不一致

时间:2014-06-18 11:17:31

标签: php simple-html-dom dynamic-arrays

我正在尝试使用simple_html_dom和PHP从页面中选择以下形式的记录:name / job / address。问题是并非每条记录都存储了“工作”的值。假设一个页面有10条记录,其中只有2条记录了一个人的工作,那么如果我使用以下内容:

foreach($html->find('span[class="name"]') as $e) {
    $name[]=$e->innertext;
}

foreach($html->find('span[class="job"]') as $e) {
    $job[]=$e->innertext;
}

foreach($html->find('span[class="address"]') as $e) {
    $address[]=$e->innertext;
}

然后当我来访问这三个数组时,我发现$ job数组只有两个记录长,而名字和地址长10个,所以我不知道这10个名字中的哪一个和#39;属于'至。有没有办法保持阵列的步骤'相互之间,还是其他一些保持记录连贯完整的方式?

谢谢。

1 个答案:

答案 0 :(得分:1)

然后在Job节点为空时插入一个空值!!

foreach($html->find('span[class="job"]') as $e) {
    $value=$e->innertext;

    if (empty($value))
        $job[] = null;
    else
        $job[] = $value;
}

或使用简写if-else版本$job[] = (empty($value) ? null : $value);