我正在使用多个 API 将数据作为平面数组返回。所有这些 API 都返回带有共享 key 的数组。
例如:
从 API A、B 和 C 返回数据:
$a = array(1 => "abc", 2 => "def");
$b = array(1 => "ghi", 2 => "jkl");
$c = array(1 => "mno", 2 => "pqr");
所有这些数组都有重复的数字键。我的要求是单个数组不会因按键冲突而丢失值。
所需结果:
array(
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqr"
);
我尝试了 array_merge()
函数,但它覆盖了重复的键,并且 array_merge_recursive()
函数将所有重复的键累积到另一个数组中。
最佳答案
试试这个......
$a=array(1=>"abc",2=>"def");
$b=array(1=>"ghi",2=>"jkl");
$c=array(1=>"mno",2=>"pqr");
$d = array();
foreach($a as $arr){
array_push($d, $arr);
}
foreach($b as $arr){
array_push($d, $arr);
}
foreach($c as $arr){
array_push($d, $arr);
}
print_r($d);
输出为
Array ( [0] => abc [1] => def [2] => ghi [3] => jkl [4] => mno [5] => pqr )
我还尝试了你的数组合并示例,它给了我以下o/p。
Array ( [0] => abc [1] => def [2] => ghi [3] => jkl [4] => mno [5] => pqr )
关于php - 合并包含共享关联键的数组而不相互覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32707788/