2013-04-19 4 views
0

У меня есть этот массив:Комбинирование массивы, содержащие дублированные значения, где array_combine не применяется

Array ([0] => Post Slider [1] => Post Slider Wide [2] => Post Slider) 

И этот второй массив:

Array ([0] => Tools Sliders [1] => Tools Sliders [2] => modules-test) 

Когда я использую функцию PHP array_combine, она не включает в себя дублирует, например:

Array ([Post Slider] => modules-test [Post Slider Wide] => Tool Sliders) 

Я смущен, как получить желаемый результат (без ограничений) pping дубликатов, полное отношение один к одному):

Array ([Post Slider] => Tools Sliders [Post Slider Wide] => Tools Sliders [Post Slider] => modules-test) 

Я был бы признателен за любую помощь и советы ..

С уважением, Кодексом

+0

Если бы вы могли делать то, что вы ожидали бы 'эхо массива $ [ "Post Slider"]' для вывода? – h2ooooooo

+0

Да, согласитесь, что сама по себе является нарушением массива, но это происходит в редких случаях из источника данных где-то, что я не могу контролировать. Мне нужно только объединить их так, как я хочу, и все. –

ответ

1

не Вы никогда не дублировали ключи в выходном массиве нет вопрос, что вы будете делать. Ключи всегда уникальны.

Единственное решение - назначить ключу массив с, например, двумя значениями.

$keys = array ('Post Slider', 'Post Slider Wide', 'Post Slider'); 
$values = array ('Tools Sliders', 'Tools Sliders', 'modules-test'); 
$output = array(); 

$size = sizeof($keys); 
for ($i = 0; $i < $size; $i++) { 
    if (!isset($output[$keys[$i]])) { 
     $output[$keys[$i]] = array(); 
    } 
    $output[$keys[$i]][] = $values[$i]; 
} 
+0

Отлично, это имеет смысл. Благодарю. –

0
$count1 = count($array1); 
$count2 = count($array2); 
$array = array(); 

if($count1==$count2){ 
    foreach($array1 as $i=>$val){ 
     $array[]=array($val,$array2[$i]); 
    } 
} 

Вы получите:

Array (
[0] => Array(
     [0] => Post Slider 
     [1] => Tools Sliders 
     ) 
............ 
) 
Смежные вопросы