Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将不同数组中的值合并到具有相同键的数组中_Php_Arrays_Merge_Array Merge - Fatal编程技术网

Php 将不同数组中的值合并到具有相同键的数组中

Php 将不同数组中的值合并到具有相同键的数组中,php,arrays,merge,array-merge,Php,Arrays,Merge,Array Merge,我有两个阵列: Array ( [0] => 5 [1] => 4 ) Array ( [0] => BMW [1] => Ferrari ) 我希望得到这个结果。使用相同的键合并值 Array ( [0] => Array ( [0] => 5 [1] => BMW ) [1] => Array

我有两个阵列:

Array
(
    [0] => 5
    [1] => 4
)
Array
(
    [0] => BMW
    [1] => Ferrari
)
我希望得到这个结果。使用相同的键合并值

Array  
  (  
    [0] => Array  
      (  
        [0] => 5  
        [1] => BMW 
      )  
    [1] => Array  
      (  
        [0] => 4
        [1] => Ferrari 
      )  
  )  

我怎么能这么做?是否有任何本机
PHP
函数可以执行此操作?我尝试了
array\u merge\u recursive
array\u merge
但是没有得到预期的结果

至于@splash58评论:

你可以用。这里有一个例子:

$array = [["5", "4"], ["BMW", "Ferrari"]];
$res = array_map(null, ...$array);
现在
res
将包含:

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => BMW
        )
    [1] => Array
        (
            [0] => 4
            [1] => Ferrari
        )
)
如果数组位于2个不同的变量中,则可以使用:

$res= array_map(null, ["5", "4"], ["BMW", "Ferrari"]);

关于@splash58评论:

你可以用。这里有一个例子:

$array = [["5", "4"], ["BMW", "Ferrari"]];
$res = array_map(null, ...$array);
现在
res
将包含:

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => BMW
        )
    [1] => Array
        (
            [0] => 4
            [1] => Ferrari
        )
)
如果数组位于2个不同的变量中,则可以使用:

$res= array_map(null, ["5", "4"], ["BMW", "Ferrari"]);

您可以使用带有null的array_map作为第一个参数(手册中有一个示例),以获得所需的结果:

<?php

$nums = [0 => 5, 1 => 4];
$cars = [0 => 'BMW', 1 => 'Ferrari'];

var_export(array_map(null, $nums, $cars));
请注意,以下输入将给出相同的结果:

$nums = ['puff' => 5, 'powder' => 4];
$cars = ['powder' => 'BMW', 'puff' => 'Ferrari'];
如上所述,使用数组_映射时,决定结果中的配对的是顺序,而不是键

使用foreach键关联(注意$cars的顺序):


您可以使用array\u map with null作为第一个参数(手册中有一个示例),以获得所需的结果:

<?php

$nums = [0 => 5, 1 => 4];
$cars = [0 => 'BMW', 1 => 'Ferrari'];

var_export(array_map(null, $nums, $cars));
请注意,以下输入将给出相同的结果:

$nums = ['puff' => 5, 'powder' => 4];
$cars = ['powder' => 'BMW', 'puff' => 'Ferrari'];
如上所述,使用数组_映射时,决定结果中的配对的是顺序,而不是键

使用foreach键关联(注意$cars的顺序):


$new=array\u映射(null,$array)我不能将你的答案标记为该问题的解决方案。但这就解决了问题。这肯定是个骗局。数组映射手册:“此函数的一个有趣用法是构造数组数组,使用NULL作为回调函数的名称可以很容易地执行此操作”,请参见示例#4。
$new=array\u映射(NULL,$array)我不能将你的答案标记为该问题的解决方案。但这就解决了问题。这肯定是个骗局。数组映射手册:“这个函数的一个有趣用法是构造一个数组数组,使用NULL作为回调函数的名称可以很容易地执行”,请参见示例#4.OP有两个数组,那么为什么要将它们打包,然后用splat解包呢?我引用splash58。另外,添加使用2个阵列的方法Sop有两个阵列,那么为什么要将它们打包,然后使用splat解包呢?我引用splash58。还添加了使用2个阵列执行此操作的方法