1

WordPressの関数(wp_dropdown_categories)を使って生成されたhtmlのselectコードで、至急配列に変換したい。

<select name="selectname1" id="selectId1" class="postform">
<option value="0">Recent Posts</option>
<option class="level-0" value="1">Uncategorized</option>
<option class="level-0" value="2">World News</option>
<option class="level-1" value="3">&nbsp;&nbsp;&nbsp;Political</option>

だから私はそのようなものになる必要があります(キー、値)

Array('Recent Posts' => '0',
'Uncategorized' = > '1',
'World News' = > '2',
'&nbsp;&nbsp;&nbsp;Political' = > '3'
);
4

2 に答える 2

1

これを試して:

$list = explode('</option>', $s);
foreach ($list as $v)
  $result[] = strip_tags($v);
于 2013-08-27T06:15:44.523 に答える
1

すぐに欲しいので、ここに簡単で汚れた正規表現ソリューションがあります:

$matches = null;
$result = array();

if(preg_match_all('/value="(.*)".*?>(.*)<\\/option>/', $s, $result)){
    $matches = array_pop($matches);
    foreach($matches[1] as $i => $key){
        $key = html_entity_decode($key);
        $val = html_entity_decode($matches[2][$i]);
        $result[$key] = $val;
    }
}

print_r($result);

ただし、HTML を正規表現でトークン化/解析するのではなく、代わりに XML/DOM クラスを使用する必要があります。

于 2013-08-27T06:22:07.930 に答える