Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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

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

PHP组合两个多维数组并使用一个数组作为键

PHP组合两个多维数组并使用一个数组作为键,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我希望以一种方式组合两个多维数组,在生成的数组中,array1值用作array2的键 以下是两个示例阵列: $array1 = array( array('data1'), array('data2'), array('data3') ); $array2 = array( array('5','12','4'), array('8','2','17'), array('20','15','3') ); 生成的数组应如下所示: $array = array

我希望以一种方式组合两个多维数组,在生成的数组中,array1值用作array2的键

以下是两个示例阵列:

$array1 = array(
   array('data1'),
   array('data2'),
   array('data3')
);

$array2 = array(
   array('5','12','4'),
   array('8','2','17'),
   array('20','15','3')
);
生成的数组应如下所示:

$array = array(
   'data1' => array('5','12','4'),
   'data2' => array('8','2','17'),
   'data3' => array('20','15','3')
);
我怎样才能做到这一点?
谢谢

你可以这样做

$array = [];
$count = count($array1);
for($index = 0; $index < $count; $index++)
{
   $array[$array1[$index][0]] = $array2[$index];
}
$array=[];
$count=count($array1);
对于($index=0;$index<$count;$index++)
{
$array[$array1[$index][0]=$array2[$index];
}

这应该可以实现您想要实现的目标

您可以这样做

$array = [];
$count = count($array1);
for($index = 0; $index < $count; $index++)
{
   $array[$array1[$index][0]] = $array2[$index];
}
$array1 = array(
array('data1'),
array('data2'),
array('data3')
);
$array2 = array(
array('5','12','4'),
array('8','2','17'),
array('20','15','3')
);
$main_array=array(count($array1));
foreach($array as $array_item){
$array_item=array(count($array2));
for($i=1;$i<count($array2);$i++){
array.push($array_item,$array2[$i]);
}
array.push($main_array,$array_item);
}
echo "<br>";
print_r($main_array);
echo "</br>";
$array=[];
$count=count($array1);
对于($index=0;$index<$count;$index++)
{
$array[$array1[$index][0]=$array2[$index];
}
这应该可以实现您试图实现的目标

$array1=array(
$array1 = array(
array('data1'),
array('data2'),
array('data3')
);
$array2 = array(
array('5','12','4'),
array('8','2','17'),
array('20','15','3')
);
$main_array=array(count($array1));
foreach($array as $array_item){
$array_item=array(count($array2));
for($i=1;$i<count($array2);$i++){
array.push($array_item,$array2[$i]);
}
array.push($main_array,$array_item);
}
echo "<br>";
print_r($main_array);
echo "</br>";
数组('data1'), 数组('data2'), 数组('data3') ); $array2=数组( 数组('5','12','4'), 数组('8','2','17'), 数组('20'、'15'、'3') ); $main_array=array(count($array1)); foreach($array作为$array\u项){ $array_item=array(count($array2)); 对于($i=1;$i
$array1=array)(
数组('data1'),
数组('data2'),
数组('data3')
);
$array2=数组(
数组('5','12','4'),
数组('8','2','17'),
数组('20'、'15'、'3')
);
$main_array=array(count($array1));
foreach($array作为$array\u项){
$array_item=array(count($array2));

对于($i=1;$i,您可以使用array\u combine将键和值组合到新数组中。您可以检查

array_combine(array_map(function($v){return $v[0];},$array1), $array2);

您可以使用array\u combine将键和值组合到新数组中。您可以检查

array_combine(array_map(function($v){return $v[0];},$array1), $array2);
使用,它允许您使用用户定义的函数

<?php

$array1 = array(
    array('data1'),
    array('data2'),
    array('data3')
);

$array2 = array(
    array('5', '12', '4'),
    array('8', '2', '17'),
    array('20', '15', '3')
);

function mapArray($array1, $array2) {
    return [$array1[0] => $array2];
}

$new_arr = array_map("mapArray", $array1, $array2);
使用,它允许您使用用户定义的函数

<?php

$array1 = array(
    array('data1'),
    array('data2'),
    array('data3')
);

$array2 = array(
    array('5', '12', '4'),
    array('8', '2', '17'),
    array('20', '15', '3')
);

function mapArray($array1, $array2) {
    return [$array1[0] => $array2];
}

$new_arr = array_map("mapArray", $array1, $array2);

只需使用两个本机php函数即可简洁地完成此操作。
调用
array\u combine()
之前的唯一步骤是减少第一个数组的深度。要从每个子数组中提取第一个值,只需调用
array\u column()
并指定需要所有
0
键控值

代码:()

输出:

array (
  'data1' => 
  array (
    0 => '5',
    1 => '12',
    2 => '4',
  ),
  'data2' => 
  array (
    0 => '8',
    1 => '2',
    2 => '17',
  ),
  'data3' => 
  array (
    0 => '20',
    1 => '15',
    2 => '3',
  ),
)

这可以通过使用两个本机php函数简洁地实现。 调用
array\u combine()
之前的唯一步骤是减少第一个数组的深度。要从每个子数组中提取第一个值,只需调用
array\u column()
并指定需要所有
0
键控值

代码:()

输出:

array (
  'data1' => 
  array (
    0 => '5',
    1 => '12',
    2 => '4',
  ),
  'data2' => 
  array (
    0 => '8',
    1 => '2',
    2 => '17',
  ),
  'data3' => 
  array (
    0 => '20',
    1 => '15',
    2 => '3',
  ),
)