У меня есть два массива в 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 )
)
Если вы хотите избежать предупреждений 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;
}