首页 > 解决方案 > 合并长度不等的数组

问题描述

我需要在 php 中组合两个数组的帮助。

我有的:

numbers = (1, 2,3,4,5,6);
letters = ('q', 'w', 'e', 'r');

我需要的:

1 q 
2 w
3 e
4 r
5 
6

重要提示:我永远不会知道“数字”或“字母”数组包含多少项目(只是这些项目的长度永远不相等),这因情况而异。

到目前为止,以下已经让我最接近目标,但这会将所有字母一起提交给每个数字:

function array_combine2($arr1, $arr2) {
   return array_combine(
        array_intersect_key($arr1, $arr2), 
        array_intersect_key($arr2, $arr1));
}
foreach(array_combine2($number,$array) as $n1 => $a1)
{
    echo $n1 . $a1."<br>";
}

标签: php

解决方案


您可以使用count()andarray_fill()生成一个“空白数组”,然后用+运算符覆盖该数组。

请参阅:数组运算符

$num = array(1, 2, 3, 4, 5);
$let = array('a', 'b', 'c');

$overlay = array_fill(0, count($num), NULL);
$sample = array_combine($num, $let + $overlay);

var_dump($sample);

输出:

array(5) {
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "c"
  [4]=>
  NULL
  [5]=>
  NULL
}

推荐阅读