Сохраняйте дубликаты ключей при заполнении ключей для многоуровневых массивов

#php

#php

Вопрос:

я пытаюсь заполнить значения из array1 в качестве ключей для array2, но у меня возникла проблема, если ключи дублируются:

 $arr1 = array(
    array(0 => "1", 1 => "1"),
    array(0 => "2", 1 => "2"),
);
$arr2 = array(
    array(0 => "a", 1 => "b"),
    array(0 => "c", 1 => "d"),
);

$result = [];

for ($i = 0; $i < count($arr1); $i  )
{
    $result[$i] = array_combine($arr1[$i], $arr2[$i]);
}
 

результат, который я получил:

 $result = array(
    array(1 => "b"),
    array(2 => "d"),
);
 

Мне это нужно так:

 $result = array(
    array(1 => "a", 1 => "b"),
    array(2 => "c", 2 => "d"),
);
 

Измененный вывод, который я хочу сейчас: (после просмотра всех комментариев / ответов)

 array (
  0 => 
  array (
    0 => array(
       0 => '1',
       1 => 'a',
            ),
    1 => array(
       0 => '1',
       1 => 'b',
            ),

  ),
  1 => 
  array (
    0 => array(
       0 => '1',
       1 => 'c',
            ),
    1 => array(
       0 => '1',
       1 => 'd',
            ),

  ),
);
 

Спасибо!

Комментарии:

1. извините, 2 одинаковых ключа внутри массива невозможны. просто распечатал ожидаемый результат: 3v4l.org/r934K … и вы можете видеть, что то, что я сказал в первой строке, невозможно.

2. array(1 => "a", 1 => "b"), вы не можете иметь их, оба используют индекс 1 . однако вы можете нажать a и b как элементы массива в массиве 1 , например: 1 => ['a', 'b']

Ответ №1:

1-е решение: вы не можете получить то, что хотите, поскольку одни и те же индексы в массиве php были перезаписаны-запись: https: //3v4l.org/r934K

Что лучше всего вы можете получить, так это:

 $result = [];

foreach($arr1 as $key=>$value){
   $result[array_unique($value)[0]] = $arr2[$key];
}
 

Вывод: https://3v4l.org/DfPU3

2-я идея: для вывода того, что вы хотите, вам нужно применить еще один foreach()

 $result = [];

foreach($arr1 as $key=>$value){
   foreach($value as $k=>$val){
       $result[$key][$k] = [$val,$arr2[$key][$k]];
   }
}

print_r($result);
 

Вывод: https://3v4l.org/u8JmX