2011-12-15 13 views
0

大きな文字列を素敵な配列にする必要があります。文字列自体はタグとタグIDのリストです。それらの任意の量があることができます。文字列の例を次に示します。29:funny,30:humor,2:lol - id:tag_name。さて、私は配列にそれを変換する問題があります - Array ([29] => funny [30] => humor )。私はタグがほど大きい文字列から素敵な配列へ

アレイ(

[0] =配列(

[0] = 29

[1] =である部分を取得することができ面白い

[1] =配列(

[0] = 30

[1] =ユーモア

I配列関数も見ていますが、nのようですそのうちの1人が私を助けることができました。 誰か助けてくれますか?ここで

答えて

0

はあなたが軌道に乗るためにいくつかのコードです:

$str = "29:funny,30:humor,2:lol"; 
$arr = array(); 
foreach (explode(',', $str) as $v) { 
    list($key, $val) = explode(':', $v); 
    $arr[$key] = $val; 
} 
print_r($arr); 
/* will output: 
Array 
(
    [29] => funny 
    [30] => humor 
    [2] => lol 
) 
*/ 

あなたは、例えばarray_mapでのforeachを置き換えることができますが、私はそれはあなたのためにこのように簡単だと思います。それは二つのパスを取るのにhttp://codepad.org/4BpnCiEJ

0

あなたが爆発使用することができます()、これを行うには:

はここで働くことの一例です。ペアに文字列を分割する最初の()、 ''($文字列を爆発)し、あなたがpreg_match_all

preg_match_all('#([\d]+):([a-zA-Z0-9]+)#', $sString, $aMatches); 

// Combine the keys with the values. 
$aArray = array_combine($aMatches[1], $aMatches[2]); 

echo "<pre>"; 
print_r($aArray); 
echo "</pre>"; 

出力を使用することができます

$arr = explode (',', $string); 
foreach ($arr as &$pairing) 
{ 
    $pairing = explode (':', $pairing); 
} 
0
$string = '29:funny,30:humor,2:lol'; 
$arr1 = explode(',', $string); 
$result = array(); 
foreach ($arr1 as $element1) { 
    $result[] = explode(':', $element1); 
} 
print_r($result); 
0

ペアリングそれぞれ分割する第二:

Array 
(
    [29] => funny 
    [30] => humor 
    [2] => lol 
) 
0
<?php 

$test = '29:funny,30:humor,2:lol'; 

$tmp_array = explode(',', $test); 

$tag_array = ARRAY(); 

foreach ($tmp_array AS $value) { 
    $pair = explode(':', $value); 
    $tag_array[$pair[0]] = $pair[1]; 
} 

var_dump($tag_array); 

?> 
関連する問題