我只希望每个选项只允许一个颜色词 从这里:
$colors = '< option value="black">black< /option>< option value="gold">gold< /option >';
对此:
$colors = 'black gold';
之后,我想将颜色输入到像这样的数组中 如何从字符串中删除单词并将该字符串划分为数组
像这样
Array
(
[0] => black
[1] => gold
)
答案 0 :(得分:3)
您可以使用preg_match_all
提取值:
$colors = '< option value="black">black< /option>< option value="gold">gold< /option >';
preg_match_all('/value="([^"]+)"/', $colors, $matches);
print_r($matches[1]);
输出:
Array
(
[0] => black
[1] => gold
)
您也可以使用PHP的DOMDocument
类来执行此操作,尽管对于您的示例而言,它可能会显得过分杀手
$colors = '< option value="black">black< /option>< option value="gold">gold< /option >';
$doc = new DOMDocument();
$doc->loadHTML(str_replace('< ', '<', $colors));
$values = array();
$attributes = array();
foreach ($doc->getElementsByTagName('option') as $option) {
$values[] = $option->nodeValue;
$attributes[] = $option->getAttribute('value');
}
print_r($values);
print_r($attributes);
请注意,有必要通过删除<
和option
之间的空格来更正HTML。这种方法的优点是可以轻松获取值或属性。输出:
Array
(
[0] => black
[1] => gold
)
Array
(
[0] => black
[1] => gold
)