需要有关混合阵列的帮助

时间:2017-06-11 13:17:51

标签: php arrays array-merge

我有两个数组如下;

$array1 = array(
    'cover.xhtml',
    'title.xhtml',
    'copyright.xhtml',
    'dedication.xhtml',
    'toc_brief.xhtml',
    'toc.xhtml',
    'ch02_1.xhtml',
    'ch02_2.xhtml',
    'ch02_3.xhtml',
    'ch02_4.xhtml',
    'ch02_5.xhtml',
    'ch02_6.xhtml',
    'ch02_7.xhtml',
    'ch02_8.xhtml',
    'ch02_9.xhtml',
    'ch02_10.xhtml'
);

$array2 = array(
    '',
    'title.xhtml',
    'copyright.xhtml',
    'dedication.xhtml',
    'ch02_2.xhtml',
    'ch02_2#454.xhtml',
    'ch02_4.xhtml',
    'ch02_1.xhtml',
    'ch02_11.xhtml',
    'ch02_12.xhtml',
    ''
);

结果应为:

array(
    'cover.xhtml',
    'title.xhtml',
    'copyright.xhtml',
    'dedication.xhtml',
    'toc_brief.xhtml',
    'toc.xhtml',
    'ch02_1.xhtml',
    'ch02_2.xhtml',
    'ch02_2#454.xhtml',
    'ch02_3.xhtml',
    'ch02_4.xhtml',
    'ch02_5.xhtml',
    'ch02_6.xhtml',
    'ch02_7.xhtml',
    'ch02_8.xhtml',
    'ch02_9.xhtml',
    'ch02_10.xhtml',
    'ch02_11.xhtml',
    'ch02_12.xhtml'
)

我试过:call_user_func_array('array_merge', array_map(null, $array1, $array2)); 这并没有产生我所需要的结果。请帮忙。

1 个答案:

答案 0 :(得分:0)

如果订单并不重要,请使用:

$array3 = array_values(array_unique(array_filter(array_merge($array1, $array2))));

输出:

Array
(
    [0] => cover.xhtml
    [1] => title.xhtml
    [2] => copyright.xhtml
    [3] => dedication.xhtml
    [4] => toc_brief.xhtml
    [5] => toc.xhtml
    [6] => ch02_1.xhtml
    [7] => ch02_2.xhtml
    [8] => ch02_3.xhtml
    [9] => ch02_4.xhtml
    [10] => ch02_5.xhtml
    [11] => ch02_6.xhtml
    [12] => ch02_7.xhtml
    [13] => ch02_8.xhtml
    [14] => ch02_9.xhtml
    [15] => ch02_10.xhtml
    [16] => ch02_2#454.xhtml
    [17] => ch02_11.xhtml
    [18] => ch02_12.xhtml
)

查看here。该代码执行以下操作:合并 - > 删除空 - > 删除重复项 - > 修复密钥