在其他数组的每个子数组的开头添加数组值


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

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

第一个阵列:

$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             
    )    
)

第二个阵列:

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

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

$array1=数组([0]=>数组([0]=>"Outlook"[1] =>2[2] =>6[3] =>15[4] =>6)[1] =>数组([0]=>"温度"[1] =>5[2] =>8[3] =>6[4] =>12)[2] =>阵列([0]=>"湿度"[1] =>2[2] =>5[3] =>5[4] =>5))

您可以将array_walk()与匿名函数和array_unshift():一起使用

array_walk
(
    $array1,
    function( &$row, $key, $kind )
    {
        array_unshift( $row, $kind[$key] );
    },
    $array2 
);

eval.in演示

array_walk()使用自定义函数修改数组。可调用的函数参数是数组项(请注意,我们必须使用&通过引用来设置它)、数组键(可选)和可选的自定义参数(在本例中为$array2)。在函数内部,使用array_unshift()),我们可以为每个项目准备相关的$array2项目,通过键$key进行选择。


  • 阅读有关array_walk()的更多信息
  • 阅读有关array_unshift()的详细信息
  • 阅读有关匿名函数的更多信息
  • 阅读更多关于参考传递的信息