Сопряжение элементов многомерного массива

0

У меня есть два массива в PHP следующим образом:

 Array1 ( [1] => Array ( [0] => 16 ) 
          [2] => Array ( [0] => 17 [1] => 29 ) 
          [3] => Array ( [0] => 30 [1] => 31 ) 
        ) Total Element Count: 5

 Array2 ( [1] => Array ( [0] => 21 )
          [2] => Array ( [0] => 22 ) 
          [3] => Array ( [0] => 23 ) 
          [4] => Array ( [0] => 24 [1] => 25 )
          [5] => Array ( [0] => 43 [1] => 44 )  
        ) Total Element Count: 7

Я хочу, чтобы пары выше двух массивов в зависимости от количества первого массива, это означает, что первые пять элементов массива Array2 должны смешиваться с Array1 с внешними ключами 1D, остающимися неповрежденными.

Выход должен быть следующим:

 Output Array( [1] => Array ( [0] => 16 [1] => 21) 
               [2] => Array ( [0] => 17 [1] => 29 [2] => 22) 
               [3] => Array ( [0] => 30 [1] => 31 [2] => 23 )
               [4] => Array ( [0] => 24 [1] => 25 ) 

)
  • 0
    на каком языке вы это делаете?
  • 0
    PHP Mysql, пожалуйста, помогите
Теги:

2 ответа

3

Если вы хотите избежать предупреждений E_STRICT:

function combine(array $arr1, array $arr2) {
  $ret = array();
  foreach ($arr1 as $k => $v) {
    if (!array_key_exists($k, $ret)) {
      $ret[$k] = array();
    }
    $ret[$k][] = $v;
  }
  foreach ($arr2 as $k => $v) {
    if (!array_key_exists($k, $ret)) {
      $ret[$k] = array();
    }
    $ret[$k][] = $v;
  }
  return $ret;
}

Если вы предпочитаете более короткую версию:

function combine(array $arr1, array $arr2) {
  $ret = array();
  foreach ($arr1 as $k => $v) {
    $ret[$k][] = $v;
  }
  foreach ($arr2 as $k => $v) {
    $ret[$k][] = $v;
  }
  return $ret;
}
  • 0
    Спасибо, Клетус, большое спасибо
  • 0
    объединение функций (массив $ arr1, массив $ arr2, $ cnt) {foreach ($ arr2 as $ k => $ v) {for ($ i = 0; $ i <count ($ arr2 [$ k]); $ i ++ ) {if (! ($ cnt == 0)) {$ cnt--; $ Arr1 [$ к] [] = $ arr2 [$ к] [$ я]; }}} return $ arr1; } Этот код дал мне именно то, что я хотел. $ arr1 => - массив с минимальным числом $ arr2 => - массив с максимальным числом $ cnt - общее рекурсивное число arr1
0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню