2009-08-16 4 views
-2

Они упрощены следующим образом, что достаточно для этого вопроса. Этот вопрос основан на this answer.Как вы можете объединить два массива?

[a][b][] 

и

[a][c] 

, где оба массива имеет один общий подмассив [а].

Я хотел бы, чтобы это

[a][c][b][] 

Я запустить следующую команду неудачно

array1[a] + array2[a] 
+2

Это может быть немного понятнее, если вы показываете до и после того, как массивы в PHP нотации. – rojoca

ответ

1
foreach($array1 as $a => $c) 
{ 
    $end_array[$c] = $array2[$a]; 
} 

или

// For every [a] 
foreach($array1 as $a => $c) 
{ 
    // Get the [b] 
    $b = $array2[$a]; 

    // Add it to [a][c] 
    $end_array[$a][$c] = $b; 

    // Making it $end_array[$a][$c][$b] = array(....); 
} 
1

$ array1 = array_merge ($ массив1 $ array2);

+0

Это исключает столбец $ b, который я не хочу, поскольку они являются заголовками вопросов. –

0

PHP предоставляет вам решение, чтобы решить эту общую проблему:

$a = array_merge($b, $c); 

С помощью этого решения вы собираетесь принять все элементы внутри $ B и объединить их с $ с. Но если вы используете ассоциативные массивы, вы должны заметить, что вы замените значения в $ b на числа в $ c.

Например:

<?php 

$a = array(
    'ka' => 1, 
    'kb' => 1, 
); 

$b = array(
    'kb' => 2, 
    'kc' => 2, 
); 

print_r(array_merge($a, $b)); 


?> 

Результатом этого кода будет что-то вроде:

Array 
(
    [ka] => 1 
    [kb] => 2 
    [kc] => 2 
) 
+0

Это не работает. Он не содержит названий. - ** Как вы можете определить столбец, который объединяет функция? ** –

0
for($i = 0; $i < sizeof($array); $i++) 
{ 
    $mergedarray[a][b] = $a[a][b]; 
    $mergedarray[a][c] = $b[a][c]; 
} 

, насколько я могу сказать, это то, что вы хотите, таким образом, как в Под-ключи имеют один и тот же корневой ключ.

1

Хорошо, я понимаю, что вы говорите. (Для всех остальных, увидеть ссылку он отвечал: http://dpaste.com/81464/)

var $output = array(); 

foreach ($array1 as $index => $a1) { 
    $output[$index] = $a1; 
    $output[$index]['title'] = $array2[$index]['title']; 
} 
Смежные вопросы