多民主党PHP字符串数组 - 逗号分隔,冒号分隔阵列
问题描述:
我有一个字符串多民主党PHP字符串数组 - 逗号分隔,冒号分隔阵列
$string = 'S:1,M:1,L:1,XL:1,XXL:1,3XL:1';
我想创造一个
$array['S'] = 1;
$array['M'] = 1;
我想我可能会爆炸(阵列“” ,$ string); 然后爆炸(':',$ string);再次;-) 但这根本不起作用。
答
是的,你可以explode()
两次,但第二个必须是在一个循环:
$string = 'S:1,M:1,L:1,XL:1,XXL:1,3XL:1';
// Split on the commas
$sizes = explode(",", $string);
// Output array
$quantities = array();
// Loop over the first explode() result
foreach ($sizes as $size) {
// Assign each pair to $s, $q
list($s, $q) = explode(":", $size);
// And put them onto an array keyed by size
$quantities[$s] = $q;
}
// This builds an array like:
Array
(
[S] => 1
[M] => 1
[L] => 1
[XL] => 1
[XXL] => 1
[3XL] => 1
)
答
$string = 'S:1,M:1,L:1,XL:1,XXL:1,3XL:1';
$result = array();
foreach (explode(',',$string) as $sub){
$subAry = explode(':',$sub)
$result[$subAry[0]] = $subAry[1];
}
var_dump($result);
拆分它,遍历拆分,然后将它们作为键值对插入结果数组中。
答
试试这个:
$str = 'S:1,M:1,L:1,XL:1,XXL:1,3XL:1';
$tokens = explode(',', $str);
$sizes = array();
foreach ($tokens as $el) {
list($k, $v) = explode(':', $el);
$sizes[$k] = $v;
}
print_r($sizes);
希望这有助于:)
+0
啊。这与其他一些答案基本相同。必须输入更快:) – 2012-03-24 20:34:26
尤里卡!谢谢..很好,很简单! – 2012-03-24 20:25:20