PHP拆分包含html标签的字符串并将字符串拆分为数组

时间:2013-03-11 07:38:52

标签: php

  1. 问题

    我有这样的字符串 $ str =“a | apple || b | bat || c | cat || d | dog”;

    从上面的字符串我想动态创建一个数组n新创建的数组shud看起来像这样 数组                  (                    [a] =>苹果                    [b] =>蝙蝠                    [c] =>猫                    [d] =>狗                  )

  2. 问题

    我有像这样的HTML字符串

                $html_string="<div>Content Div1</div>
                              <div>Content Div2</div>
                              <div>Content Div3</div>";
    
  3. 我怎样才能得到第三个DIV,结果答案应该是这样的

                  $ans="<div>Content Div3</div>" ;
    

    请有人帮助我

5 个答案:

答案 0 :(得分:2)

第一个

$str = "a|apple||b|bat||c|cat||d|dog";
$new_array = array();

$my_array = explode("||", $str);
$my_array = array_filter($my_array);

foreach ($my_array as $mine) {
  $my = explode("|", $mine);
  $new_array[$my[0]] = $my[1];
}

的print_r($ new_array);

//输出

Array
(
    [a] => apple
    [b] => bat
    [c] => cat
    [d] => dog
)

答案 1 :(得分:1)

试试这个:

第一回答:

<?php
$str="a|apple||b|bat||c|cat||d|dog";
$parentArray = explode('||', $str);
$finalArray = array();
foreach($parentArray as $parentKey=>$parentValue)
{
    $childArray = explode('|', $parentValue);
    $finalArray[$childArray[0]] = $childArray[1];
}

echo "<pre>";
print_r($finalArray);
?>

第二回答

<?php
$html_string="<div>Content Div1</div>
                          <div>Content Div2</div>
                          <div>Content Div3</div>";
$finalArray = explode('</div>', $html_string);
$resultRequired = $finalArray[2] . "</div>";                     
?>

答案 2 :(得分:0)

**for second**

$html_string = "<div>Content Div1</div><div>Content Div2</div><div>Content Div3</div>";
$new_arr = explode("</div>", $html_string);
$my_data = $new_arr[2] . '</div>';
print_r($my_data);

//输出

<div>Content Div3</div>

答案 3 :(得分:0)

试试这个:

<强>第一

$str = "a|apple||b|bat||c|cat||d|dog";
$my_array = explode("||", $str);
$finalArr=array();
foreach($my_array as $my_arr)
{
   $myar = explode("|", $my_arr);
   $finalArr[$myar[0]]=$myar[1];
}
print_r($finalArr);

第二次

$html_string="<div>Content Div1</div><div>Content Div2</div><div>Content Div3</div>";
$secondArray = explode('</div>', $html_string);
echo $res = $secondArray[2] . "</div>";  

http://writecodeonline.com/php/

上测试

答案 4 :(得分:0)

关于您的第一个问题:

    $tmp_array = explode( '||', $str );
    $str_array = array();

    foreach( $tmp_array as $value ){

        $tmp = explode( '|', $value );
        $str_array[ $tmp[0] ] = $tmp[1];

    }

关于第二个问题

    $html_array = array();
    $pattern = '/\<div\>.*\<\/div\>/i';

    if( preg_match_all( $pattern, $html_string, $matches ) ) {
        $html_array = $matches[0];
    }

将会:

    <div>Content Div3</div>

如果找到任何匹配项,请在$ html_array [2]中。