带有2种分隔符的PHP分解数组

带有2种分隔符的PHP分解数组,php,arrays,explode,Php,Arrays,Explode,我有这个选项数组: string(111) "colors:black;white;transparent;pink;" 如何分解它,使其成为标签第一个分隔符:数组中的其余部分作为选项?到目前为止,我有: $options= explode(";",$rows[0]); $htm= '<ul class="product_opts">'.$lang['available_options'].''; foreach ($options as $value) {

我有这个选项数组:

string(111) "colors:black;white;transparent;pink;"    
如何分解它,使其成为标签第一个分隔符:数组中的其余部分作为选项?到目前为止,我有:

$options= explode(";",$rows[0]);
$htm= '<ul class="product_opts">'.$lang['available_options'].'';
foreach ($options as $value) { 
        $row=mysql_fetch_row($result);
            $htm.='<li style="text-align:left;font-weight:normal;">'.$value.'</li>';
            }
        $htm.= '</ul>';
        }
    echo $htm;    
$options=explode(“;”,$rows[0]);
$htm='
    。$lang['available_options'.'; foreach($value形式的期权){ $row=mysql\u fetch\u row($result); $htm.='
  • ”。$value.
  • '; } $htm.='
'; } echo$htm;
但它也将标签作为选项返回

  • 分解字符串:
    。第一个标记是您的标签,第二个标记是您的选项
  • 通过
    分解第二个标记,并且您在数组中有您的选项
  • 分解字符串:
    。第一个标记是您的标签,第二个标记是您的选项
  • 通过
    分解第二个标记,并且您在数组中有您的选项
  • 试一试

    请参见演示

    尝试

    请参见演示

    $str=“颜色:黑色;白色;透明;粉色;”;
    列表($label,$optionsStr)=分解(“:”,$str);
    $optionsStr=rtrim($optionsStr,“;”);
    $options=分解(“;”,$OPTIONSTR);
    回声“;
    打印(标签);
    打印(可选);
    
    $str=“颜色:黑色;白色;透明;粉色;”;
    列表($label,$optionsStr)=分解(“:”,$str);
    $optionsStr=rtrim($optionsStr,“;”);
    $options=分解(“;”,$OPTIONSTR);
    回声“;
    打印(标签);
    打印(可选);
    
    使用
    split
    这样做

    $attributes="colors:black;white;transparent;pink;";
    
    list($attribute, $values) = array_map(
        function($value) {
            return array_filter(explode(';', $value));
        },
        explode(':', $attributes)
    );
    var_dump($attribute);
    var_dump($values);
    

    使用
    split
    这样做

    $attributes="colors:black;white;transparent;pink;";
    
    list($attribute, $values) = array_map(
        function($value) {
            return array_filter(explode(';', $value));
        },
        explode(':', $attributes)
    );
    var_dump($attribute);
    var_dump($values);
    

    注意:从PHP 5.3.0开始,此函数(拆分)已被弃用。注意:从PHP 5.3.0开始,此函数(拆分)已被弃用。很好的解决方案,谢谢大家@entrex我接受你的回答,谢谢!很好的解决方案,伙计们,谢谢你们所有人@entrex我接受你的回答,谢谢!
    $options= split("[;|:]",$rows[0]);
    
    $attributes="colors:black;white;transparent;pink;";
    
    list($attribute, $values) = array_map(
        function($value) {
            return array_filter(explode(';', $value));
        },
        explode(':', $attributes)
    );
    var_dump($attribute);
    var_dump($values);