Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Multidimensional Array - Fatal编程技术网

合并PHP数组以形成多维数组

合并PHP数组以形成多维数组,php,arrays,merge,multidimensional-array,Php,Arrays,Merge,Multidimensional Array,我有以下两个阵列: 数组([Jonah]=>27[Bianca]=>32 数组([Jonah]=>2[Bianca]=>7 是否可以将它们合并在一起,形成这种格式的多维数组 Array ( [0] => Array ( [name] => Jonah [age] => 27 [number] => 2 ) [1] => Array

我有以下两个阵列:

数组([Jonah]=>27[Bianca]=>32

数组([Jonah]=>2[Bianca]=>7

是否可以将它们合并在一起,形成这种格式的多维数组

Array ( [0] => Array 
               ( [name] => Jonah 
                 [age] => 27 
                 [number] => 2 )
        [1] => Array 
               ( [name] => Bianca 
                 [age] => 32 
                 [number] => 7 )
      )

按名称键控的临时数组存储前两个数组的值。然后将临时数组复制到以数字键控的最终数组:

$arr1 = array ( 'Jonah' => 27, 'Bianca' => 32 );
$arr2 = array ( 'Jonah' => 2, 'Bianca' => 7 );

$tmp = array();

// Using the first array, create array keys to $tmp based on
// the name, and holding the age...
foreach ($arr1 as $name => $age) {
 $tmp[$name] = array('name' => $name, 'age' => $age);
}

// Then add the number from the second array
// to the array identified by $name inside $tmp
foreach ($arr2 as $name => $num) {
  $tmp[$name]['number'] = $num;
}

// Final array indexed numerically:
$output = array_values($tmp);
print_r($output);

Array
(
    [0] => Array
        (
            [name] => Jonah
            [age] => 27
            [number] => 2
        )

    [1] => Array
        (
            [name] => Bianca
            [age] => 32
            [number] => 7
        )

)

注意:如果您同意按名称键入输出数组,则不需要严格执行复制数组以使其数字化的最后一步。在这种情况下,
$tmp
是最终产品。

按名称键入的临时数组存储前两个数组的值。然后将临时数组复制到按名称键入的最终数组凯莉:

$arr1 = array ( 'Jonah' => 27, 'Bianca' => 32 );
$arr2 = array ( 'Jonah' => 2, 'Bianca' => 7 );

$tmp = array();

// Using the first array, create array keys to $tmp based on
// the name, and holding the age...
foreach ($arr1 as $name => $age) {
 $tmp[$name] = array('name' => $name, 'age' => $age);
}

// Then add the number from the second array
// to the array identified by $name inside $tmp
foreach ($arr2 as $name => $num) {
  $tmp[$name]['number'] = $num;
}

// Final array indexed numerically:
$output = array_values($tmp);
print_r($output);

Array
(
    [0] => Array
        (
            [name] => Jonah
            [age] => 27
            [number] => 2
        )

    [1] => Array
        (
            [name] => Bianca
            [age] => 32
            [number] => 7
        )

)

注意:如果您同意按名称键入输出数组,则不需要严格执行复制数组以使其数字化的最后一步。在这种情况下,
$tmp
是最终产品。

确定。以下功能应满足您的需要:

$people = array ( 'Jonah' => 27, 'Bianca' => 32 );
$numbers = array ( 'Jonah' => 2, 'Bianca' => 7 );
$merged = array();
$i = 0;

foreach ($people as $k=>$v)
{
   if (isset($numbers[$k]))
   {
      $merged[$i]['name'] = $k;
      $merged[$i]['age'] = $v;
      $merged[$i++]['number'] = $numbers[$k];
   }
}
现在,如果您执行
var_dump($merged);
您将得到:

array
  0 => 
    array
      'name' => string 'Jonah' (length=5)
      'age' => int 27
      'number' => int 2
  1 => 
    array
      'name' => string 'Bianca' (length=6)
      'age' => int 32
      'number' => int 7

好的。以下功能应该会让你成为你想要的人:

$people = array ( 'Jonah' => 27, 'Bianca' => 32 );
$numbers = array ( 'Jonah' => 2, 'Bianca' => 7 );
$merged = array();
$i = 0;

foreach ($people as $k=>$v)
{
   if (isset($numbers[$k]))
   {
      $merged[$i]['name'] = $k;
      $merged[$i]['age'] = $v;
      $merged[$i++]['number'] = $numbers[$k];
   }
}
现在,如果您执行
var_dump($merged);
您将得到:

array
  0 => 
    array
      'name' => string 'Jonah' (length=5)
      'age' => int 27
      'number' => int 2
  1 => 
    array
      'name' => string 'Bianca' (length=6)
      'age' => int 32
      'number' => int 7