0

クラス名が異なる2つのスパンの値を取得して配列に入れようとしています

これはhtmlです

$html = '<div class="members">
            <span class="records">Name: </span>
            <span class="values">Marco</span>
        </div>
        <div class="members">
            <span class="records">Mobile: </span>
            <span class="values">+9431109890</span>
        </div>
        <div class="members">
            <span class="records">Age: </span>
            <span class="values">33</span>
        </div>
        <div class="members">
            <span class="records">Sex: </span>
            <span class="values">Male</span>
        </div>'

今のところ私はこのコードを持っています

preg_match_all("/\<span class\=\"records\"\>(.*?)\<\/span\>/", $html, $records);
preg_match_all("/\<span class\=\"values\"\>(.*?)\<\/span\>/", $html, $values);
$valueresult = implode("\n", $records[1]); 
$recordresult = implode("\n", $values[1]); 

これを配列に入れる方法がわかりません。または、これを配列に入れるのにはるかに優れた女子学生がいるかどうかもわかりません。

結果は

  array(
    'Name'  => 'Marco',
    'Mobile' => '+000000000',
    'Age' => '33',
    'Sex' => 'Male,
  )
4

2 に答える 2

0

私は正規表現のマスターではありませんが、:記号を削除するように変更しました:

preg_match_all("/\<span class\=\"records\"\>(.*?):(.*?)\<\/span\>/", $html, $records);
preg_match_all("/\<span class\=\"values\"\>(.*?)\<\/span\>/", $html, $values);

$combined = array_combine($records[1], $values[1]);

print_r($combined);
于 2013-07-01T11:15:25.183 に答える
0
preg_match_all("/\<span class\=\"records\"\>(.*?)\<\/span\>/", $html, $records);
preg_match_all("/\<span class\=\"values\"\>(.*?)\<\/span\>/", $html, $values);

$recordresult = $values[1];
$valueresult = $records[1];

$result  = array_combine($valueresult, $recordresult);
var_dump($result);
于 2013-07-01T11:21:57.337 に答える