首页 > 解决方案 > 通过键组合(合并)2个数组并更改结果数组中的键名

问题描述

我有这两个数组作为输出:

Value Array
(
    [0] => 10100153
    [1] => 2007
    [2] => 350
    [3] => 804082
    [4] => WW006
    [5] => WHT/NNY/OXGM
    [6] => 35/38
    [7] => 804082         WW00635/38
    [8] => 0,00138857
    [9] => Champion 3pk Quarter Socks
)
Numbers Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10 
)

我想将它们组合起来,并在 value 中更改 value 数组的键值,在 numbers 中更改 numbers 数组,所以它看起来像这样:

期望输出

['Value' => '10100153', 'Number' => 1],
['Value' => '2007', 'Number' => 2],
['Value' => '390', 'Number' => 3],
['Value' => '804715', 'Number' => 4],
['Value' => 'WW001', 'Number' => 5],
['Value' => 'WHT/WHT/WHT', 'Number' => 6],
['Value' => '39/42', 'Number' => 7],
['Value' => '804715         WW00139/42', 'Number' => 8],
['Value' => '0.00138857', 'Number' => 9],
['Value' => '3pk Quarter Socks', 'Number' => 10]

我只能找到array_combineand array_merge,但array_merge只是将数字数组添加到值数组的末尾,array_combine并将数字添加到值数组的文本末尾

标签: phparrays

解决方案


您可以使用array_map( doc ) 和array_combine( doc ) 作为:

$res = array_map(null, $valuesArray, $numbersArray);
$keys = array("Value", "Number");
$res = array_map(function ($e) use ($keys) {return array_combine($keys, $e);}, $res);

注意nullin的使用array_map。从文档:

这个函数的一个有趣的用途是构造一个数组数组,通过使用NULL作为回调函数的名称可以很容易地执行

这样您就可以合并更多的数组 - 只需记住将正确的键添加到$keys

现场示例:3v4l


推荐阅读