我有这个选项数组:
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;
但它也将标签作为选项返回..
答案 0 :(得分:2)
$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);
答案 1 :(得分:1)
:
分解字符串。第一个令牌将是您的标签,第二个令牌是您的选项。;
分解第二个令牌,您可以选择数组。答案 2 :(得分:1)
尝试
$str = "colors:black;white;transparent;pink;";
$arr = explode(";",$str);
$key = explode(":",$arr[0]);
$arr[0] = $key[1];
unset($arr[sizeof($arr)-1]);
请参阅演示here
答案 3 :(得分:1)
$str = "colors:black;white;transparent;pink;";
list($label, $optionsStr) = explode(":", $str);
$optionsStr = rtrim($optionsStr, ";");
$options = explode(";", $optionsStr);
echo "<pre>";
print_r($label);
print_r($options);
答案 4 :(得分:0)
使用split
这样做
$options= split("[;|:]",$rows[0]);