按键组合2个数组并更改结果数组中的键名称

Flu*_*eer 4 php arrays

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

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 
)
Run Code Online (Sandbox Code Playgroud)

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

欲望输出

['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]
Run Code Online (Sandbox Code Playgroud)

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

dWi*_*der 8

您可以使用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);
Run Code Online (Sandbox Code Playgroud)

注意使用nullin array_map.来自文档:

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

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

  • 我从未使用`null`作为`array_map`的回调.PHP仍然成功让我感到惊讶,因为它应该以多种方式行事,但它不应该:) (3认同)