Php 将两个数组元素合并到新的数组元素中
我有两个数组Php 将两个数组元素合并到新的数组元素中,php,laravel,Php,Laravel,我有两个数组 $a = ['0' => 1, '1' => 2, '2' => 3] $b = ['0' => 4, '1' => 5, '2' => 6] 我想创建这样的新数组 $c = [['a' => 1, 'b' => '4'], ['a' => '2', 'b' => '5']] 我尝试了这些函数array\u merge,array\u merge\u recursive,但没有得到积极的结果 $data = ar
$a = ['0' => 1, '1' => 2, '2' => 3]
$b = ['0' => 4, '1' => 5, '2' => 6]
我想创建这样的新数组
$c = [['a' => 1, 'b' => '4'], ['a' => '2', 'b' => '5']]
我尝试了这些函数array\u merge
,array\u merge\u recursive
,但没有得到积极的结果
$data = array_merge_recursive(array_values($urls), array_values($id));
您必须应用自定义函数:
$newArray = array_map('combine',array_map(null, $a, $b));
function combine($n){
return array_combine(array('a','b'),$n);
}
print_r($newArray);
输出:-您必须应用自定义功能:
$newArray = array_map('combine',array_map(null, $a, $b));
function combine($n){
return array_combine(array('a','b'),$n);
}
print_r($newArray);
输出:-试试这个
$c = array_merge($a,$b)
$d[] = array_reduce($d, 'array_merge', []);
它将合并两个数组,并将其缩小和重新合并。试试这一个
$c = array_merge($a,$b)
$d[] = array_reduce($d, 'array_merge', []);
它将合并两个数组,并对其进行缩减和重新合并。您可以使用
foreach
来处理此问题
$a = ['0' => 1, '1' => 2, '2' => 3];
$b = ['0' => 4, '1' => 5, '2' => 6];
$res = [];
$i = 0;
$total = 2;
foreach($a as $k => $v){
$res[$i]['a'] = $v;
$res[$i]['b'] = $b[$k];
$i++;
if($i == $total) break;
}
您可以使用
foreach
来处理此问题
$a = ['0' => 1, '1' => 2, '2' => 3];
$b = ['0' => 4, '1' => 5, '2' => 6];
$res = [];
$i = 0;
$total = 2;
foreach($a as $k => $v){
$res[$i]['a'] = $v;
$res[$i]['b'] = $b[$k];
$i++;
if($i == $total) break;
}
我们的想法是使用一个数组
$ab=['a','b']
和一个来自两个数组的数组,就像这样$merged_array=[[1,4],[2,5],[3,6]
现在我们可以将数组
$ab
与$merged\u array
的每个元素组合,这将是我们需要的结果
$first = ['0' => 1, '1' => 2, '2' => 3];
$second = ['0' => 4, '1' => 5, '2' => 6];
$merged_array = [];
for($i=0;$i<count($first);$i++)
{
array_push($merged_array,[$first[$i],$second[$i]]);
}
$final = [];
$ab = ['a','b'];
foreach($merged_array as $arr)
{
array_push($final,array_combine($ab, $arr));
}
print_r($final);
$first=['0'=>1,'1'=>2,'2'=>3];
$second=['0'=>4,'1'=>5,'2'=>6];
$merged_array=[];
对于($i=0;$i的想法是要有一个数组$ab=['a','b']
和两个数组中的一个数组,像这样$merged\u数组=[[1,4],[2,5],[3,6]
,
现在我们可以将数组$ab
与$merged\u数组的每个元素组合起来,这将是我们需要的结果
$first = ['0' => 1, '1' => 2, '2' => 3];
$second = ['0' => 4, '1' => 5, '2' => 6];
$merged_array = [];
for($i=0;$i<count($first);$i++)
{
array_push($merged_array,[$first[$i],$second[$i]]);
}
$final = [];
$ab = ['a','b'];
foreach($merged_array as $arr)
{
array_push($final,array_combine($ab, $arr));
}
print_r($final);
$first=['0'=>1,'1'=>2,'2'=>3];
$second=['0'=>4,'1'=>5,'2'=>6];
$merged_array=[];
对于($i=0;$iI)我认为您必须编写自定义函数才能执行所需操作,因为您没有任何像“a”“b”这样的键。我认为您必须编写自定义函数才能执行所需操作,因为您没有任何像“a”“b”这样的键。此数组映射(null,$a,$b)
很有趣。你能解释一下它是如何工作的吗?@SujeetAgrahari你可以查看此链接以获得更好的解释:-此数组映射(null,$a,$b)
很有趣。你能解释一下它是如何工作的吗?@SujeetAgrahari你可以查看此链接以获得更好的解释:-