<?
$str = <<<HTML
<tr>
<td align="left" class="ab" width="20%">aaaaa</td>
<td width="30%" align="left" class="ab1">bbbbb</td>//
<td align="left" class="ab" width="20%">ccccc</td>
<td align="left" class="ab2" width="30%">ddddd</td>//
</tr>
<tr>
<td align="left" class="ab" width="20%">aaaaa</td>
<td align="left" class="ab1" width="30%">bbbbb</td>//
<td align="left" class="ab" width="20%">ccccc</td>
<td width="30%" align="left" class="ab2">ddddd</td>//
</tr>
HTML;
preg_match_all('/<td.*class=\"ab[12].*>(.*)<\/td>/',$str,$dd);
print_r ($dd[1]);
?>结果是这样子的
Array
(
    [0] => Array
        (
            [0] => <td width="30%" align="left" class="ab1">bbbbb</td>
            [1] => <td align="left" class="ab2" width="30%">ddddd</td>
            [2] => <td align="left" class="ab1" width="30%">bbbbb</td>
            [3] => <td width="30%" align="left" class="ab2">ddddd</td>
        )    [1] => Array
        (
            [0] => ab1
            [1] => ab2
            [2] => ab1
            [3] => ab2
        )    [2] => Array
        (
            [0] => bbbbb
            [1] => ddddd
            [2] => bbbbb
            [3] => ddddd
        ))我现在只想打印:
    [2] => Array
        (
            [0] => bbbbb
            [1] => ddddd
            [2] => bbbbb
            [3] => ddddd
        )要怎么处理呢?用foreach那不是很麻烦?有没有更直接一点的?
我现在是用这种方法的。
foreach($out as $key=>$value){
         if($key==2){
foreach($value as $v){
$str=strip_tags($v);
echo $str."<br>\n";
}
         }
}

解决方案 »

  1.   

    preg_match_all('/<td.*class=\"ab[12].*>(.*)<\/td>/',$str,$dd);
    print_r ($dd[1]);//不对啊,这样输出的应该是下面这样的,你贴出的结果应该是整个dd数组的内容了
    //Array
    //(
    //    [0] => bbbbb
    //    [1] => ddddd
    //    [2] => bbbbb
    //    [3] => ddddd
    //)foreach($dd[1] as $v) echo $v."<br />\n";  //用这一句取代print_r($dd[1]);
      

  2.   

    preg_match_all('/<td.*class=\"ab[12].*>(.*)<\/td>/',$str,$dd);
    print_r ($dd[1]);//不对啊,这样输出的应该是下面这样的,你贴出的结果应该是整个dd数组的内容了
    //Array
    //(
    // [0] => bbbbb
    // [1] => ddddd
    // [2] => bbbbb
    // [3] => ddddd
    //)foreach($dd[1] as $v) echo $v."<br />\n"; //用这一句取代print_r($dd[1]);
      

  3.   

    <?
    $str = <<<HTML
    <tr>
    <td align="left" class="ab" width="20%">aaaaa</td>
    <td width="30%" align="left" class="ab1">bbbbb</td>//
    <td align="left" class="ab" width="20%">ccccc</td>
    <td align="left" class="ab2" width="30%">ddddd</td>//
    </tr>
    <tr>
    <td align="left" class="ab" width="20%">aaaaa</td>
    <td align="left" class="ab1" width="30%">bbbbb</td>//
    <td align="left" class="ab" width="20%">ccccc</td>
    <td width="30%" align="left" class="ab2">ddddd</td>//
    </tr>
    HTML;
    preg_match_all('/<td.*class=\"ab[12].*>(.*)<\/td>/',$str,$dd);
    foreach($dd[1] as $value)
    {
    echo $value."<br>";
    }
    ?>
    这样?