2012-01-19 152 views
-2

我有2個包含值的變量。這裏是變量:在PHP中組合變量

$a = "1a, 2a, 3a, 3a_oth, 4a, 4a_oth"; 
$b = "1, 1, 8, Port, 10, UNIX"; 

我怎樣才能結合這兩個變量來得到這個?

$c = array('1a'=>'1', '2a'=>'1', '3a'=>'8', '3a_oth'=>'Port', '4a'=>'10', '4a_oth'=>'UNIX'); 
+0

$ a和$ b是像字符串:'$一個=「1A,2A,3A,3a_oth ,4a,4a_oth,';' – 2012-01-19 01:14:27

+0

$ c ['1a'] ='1';等等 – CountMurphy 2012-01-19 01:14:34

+2

這不是有效的代碼,但你看看它。你能否提供實際樣品或清理你的問題?你在談論*組合數組*嗎? (提示提示,搜索這些關鍵字!) – deceze 2012-01-19 01:15:07

回答

1

假設有兩個串並希望第三個字符串,而不是關聯數組:

$a = '1a, 2a, 3a, 3a_oth, 4a, 4a_oth'; 
$b = '1, 1, 8, Port, 10, UNIX'; 

function combine($a,$b){ 
    $c=''; 
    $aa = preg_split('/, /',$a); 
    $bb = preg_split('/, /',$b); 
    if(count($aa)!=count($bb))return false; 
    for($i=0;$i<count($aa);$i++){ 
     $c.=$aa[$i].'='.$bb[$i]; 
     if($i!=count($aa)-1)$c.=', '; 
    } 
    return $c; 
} 
echo combine($a,$b); // returns 1a=1, 2a=1, 3a=8, 3a_oth=Port, 4a=10, 4a_oth=UNIX 
4

看看array_combine函數。

你可以這樣做,假設$a$b是逗號分隔的字符串而不是數組。如果它們已經是數組,則可以跳過explode步驟,直接將它們傳遞給array_combine

$a = "1a, 2a, 3a, 3a_oth, 4a, 4a_oth"; 
$b = "1, 1, 8, Port, 10, UNIX"; 

$c = array_combine(explode(",", $a), explode(",",$b)); 

explode函數將逗號分隔的字符串轉換爲數組。

然後,基於$a的數組用於新數組的鍵,而基於$b的數組用於該值。

3

假設上述變量是數組,請使用array_combine

如果$a$b是以逗號分隔的字符串,則首先使用explode

$a = explode("," $a); // only if $a is a string 
$b = explode("," $b); // only if $b is a string 

$a = array('1a', '2a', '3a', '3a_oth', '4a', '4a_oth'); // keys 
$b = array('1', '1', '8', 'Port', '10', 'UNIX');  // values 

$c = array_combine($a, $b); 
// outputs array('1a' => '1', '2a' => '1', '3a' => '8' ...)