PHP组合两个多维数组并使用一个数组作为键
我希望以一种方式组合两个多维数组,在生成的数组中,array1值用作array2的键 以下是两个示例阵列: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 = 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',
),
)