2012-03-24 22 views

答えて

2

はい、あなたは二回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 
) 
+0

ユーレカを!ありがとう..素敵で簡単! –

2
$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); 

分割し、分割して繰り返し、結果の配列をキーと値のペアとして挿入します。

0

これを試してみてください:

$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

ああこれは基本的に他の答えのいくつかと同じです。より速く入力する必要があります:) –

関連する問題