[英]PHP how to merge arrays?
如何将多个数组合并为具有相同列的数组。 我的代码就像
$stmt1 = $pdo ->prepare('SELECT * FROM `formsone`');
$stmt1 ->execute();
$applications1 = $stmt1 ->fetchAll();
$stmt2 = $pdo ->prepare('SELECT * FROM `formstwo`');
$stmt2 ->execute();
$applications2 = $stmt2 ->fetchAll();
$stmt3 = $pdo ->prepare('SELECT * FROM `formsthree`');
$stmt3 ->execute();
$applications3 = $stmt3 ->fetchAll();
$stmt4 = $pdo ->prepare('SELECT * FROM `formsfour`');
$stmt4 ->execute();
$applications4 = $stmt4 ->fetchAll();
$results = // Merge all applications into one
它们都具有相同的列,如id
, name
, password
,我只想将所有结果合并为一个。
好吧,假设您有4个数组:
<?php
$data1=[
'id' => 1,
'name' => 'test1',
'password' => 'pass1'
];
$data2=[
'id' => 2,
'name' => 'test2',
'password' => 'pass2'
];
$data3=[
'id' => 3,
'name' => 'test3',
'password' => 'pass3'
];
$data4=[
'id' => 4,
'name' => 'test4',
'password' => 'pass4'
];
它们都有与您提到的相同的字段。 为了合并它们,您可以使用:
$result=array_merge_recursive($data1,$data2,$data3,$data4);
echo '<pre>';
print_r($result);
输出将是一个新数组,其中包含基于每个数组的键值的所有合并数据:
Array
(
[id] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[name] => Array
(
[0] => test1
[1] => test2
[2] => test3
[3] => test4
)
[password] => Array
(
[0] => pass1
[1] => pass2
[2] => pass3
[3] => pass4
)
)
在此示例中, array_merge
将无法正常工作,因为在创建新数组时,由于相同的array_key
(在我们的示例中为id,name,password),它将覆盖数据。 这就是为什么我使用array_merge_recursive
来基于键值创建多维数组的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.