关于php:在每个subArray的开头添加来自其他数组的数组值

Add array values at the start of each subArray from other array

我有两个数组,$array1$array2,现在我想取$array2的值,并将每个元素放在$array1的每个子数组的开头。

第一个数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$array1 = Array (
    [0] => Array (
            [0] => 2
            [1] => 6
            [2] => 15
            [3] => 6              
    )  
    [1] => Array (
            [0] => 5
            [1] => 8
            [2] => 6
            [3] => 12

    )    
    [2] => Array (
            [0] => 2
            [1] => 5
            [2] => 5
            [3] => 5            
    )    
)

第二个数组:

1
2
3
4
5
$array2 = Array (
    [0] => Outlook
    [1] => Temp
    [2] => Humidity        
)

预期输出(修改/新值加粗):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$array1 = Array (
    [0] => Array (
            [0] => 'Outlook'
            [1] => 2
            [2] => 6
            [3] => 15
            [4] => 6        
    )
    [1] => Array (
            [0] => 'Temp'
            [1] => 5
            [2] => 8
            [3] => 6
            [4] => 12        
    )
    [2] => Array (
            [0] => 'Humidity'
            [1] => 2
            [2] => 5
            [3] => 5
            [4] => 5            
    )
)


可以使用带匿名功能的array_walk()array_unshift()

1
2
3
4
5
6
7
8
9
array_walk
(
    $array1,
    function( &$row, $key, $kind )
    {
        array_unshift( $row, $kind[$key] );
    },
    $array2
);

demo中的eval.

array_walk()使用自定义函数修改数组。可调用函数参数是数组项(注意,我们必须使用&通过引用来设置)、数组键(可选)和可选自定义参数(在我们的例子中,是$array2参数)。在函数内部,使用array_unshift()我们可以将相对的$array2项预先附加到每个项上,并通过键$key选择它。

  • 了解更多关于array_walk()的信息
  • 了解更多关于数组unshift()的信息
  • 阅读有关匿名函数的详细信息
  • 阅读有关按引用传递的详细信息