2012-01-19 3 views
-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

$ а и $ Ь строки типа: '$ а =«1а, 2а, 3а, 3a_oth , 4a, 4a_oth, '; ' –

+0

$ c [' 1a '] =' 1 '; и т. д. – CountMurphy

+2

Это недопустимый код, однако вы смотрите на него. Можете ли вы предоставить фактические образцы или выяснить свой вопрос? Вы говорите о * объединении массивов *? (подсказка подсказка, поиск по этим ключевым словам!) – deceze

ответ

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' ...) 
Смежные вопросы