2013-11-27 61 views
0

我得到了一個字符串,我想爆炸成一個數組,但
問題是,我需要每一個項目的組合。使用foreach創建數組,同時將每個2項分組到鑰匙

例字符串:

http://www.example.com, example, http://www.example2.com, example2, http://www.example3.com, example3, http://www.example.com4, example4, http://www.example5.com, example5, http://www.example6.com, example6, 

什麼,我想實現的是:

array( 
    [1]=>array( 
     [url] => 'http://www.example.com', 
     [name] => 'example', 
    ), 
    [2]=>array( 
     [url] => 'http://www.example2.com', 
     [name] => 'example2', 
    ), 
    [3]=>array( 
     [url] => 'http://www.example3.com', 
     [name] => 'example3', 
    ), 
    [4]=>array( 
     [url] => 'http://www.example4.com', 
     [name] => 'example4', 
    ), 
    [5]=>array( 
     [url] => 'http://www.example5.com', 
     [name] => 'example5', 
    ), 
    [6]=>array( 
     [url] => 'http://www.example5.com', 
     [name] => 'example6', 
    ), 
); 

等等...
我試圖創建在許多這樣的一個數組方式,但我想我缺乏
知道如何,並會真正apreaciate你的幫助。 ;)

EDIT 1(到目前爲止已經試過):

$csv_arr = array(); 
$keycounter = 1; 
$counter = 1; 


foreach($csv_data as $dataitem) { 

    if($counter % 2 == 0) { 
     $csv_arr[$keycounter]['keyword'] = $dataitem; 
     $keycounter++; 
    } 
    else { 
     $csv_arr[$keycounter]['url']  = $dataitem;  
    } 

    $counter++; 

} 
+0

所以你到目前爲止嘗試什麼?顯示代碼! – djot

+0

我的代碼doesent工作 - 我不需要一點點修復,我需要一個想法,一個指導方針... nevetheless - 我添加了我的非工作代碼(什麼爲!?!),而我嘗試@kingkero代碼。 –

回答

4

如果你能,爆炸(所以你一定有在URL或字符串沒有,跟隨他們),你可以用這樣一個碼這

$exploded = explode(',', $string); 
$max = count($exploded); 
$result = array(); 
for ($i=0; $i<$max; $i+=2) { 
    $result[] = array(
     'url' => $exploded[$i], 
     'name' => $exploded[($i+1)] 
    ); 
} 
+0

這太棒了 - 它實際上做我的代碼做的,所以我想我有一個字符串的問題,但你的方式是更優雅 - 愛它,學到了新的東西;)非常感謝 –

+0

很高興我可以幫助(一點點) 。確保你的字符串只包含'',只能作爲分隔符(正如我所提到的),也許刪除尾部的','('(r)trim'是你的朋友) – kero

+1

yee,我的字符串在行尾沒有逗號textarea)...這就是爲什麼我認爲我的代碼是錯誤的 - 無論如何,我學到了一些總是很酷的新東西。謝了哥們。 –