我有两个阵列(可能更多),他们可能有散射数据。
Date | Apple Date | Banana
----------------- -------------------
1 | 5 1 | 3
4 | 5 3 | 1
5 | 5 7 | 2
数组结构如下所示。
array
(
[0] => array
(
[date] => 4
[apple] => 5
)
[1] => array
(
[date] => 5
[apple] => 5
)
)
我需要的是有一个整合的阵列,同时包含这两个细节。示例如下所示。
Date Apple Banana
-------------------------------
1 5 3
3 0 1
4 5 0
5 5 0
7 0 2
考虑到数组可以保存多个值,我们如何才能做到最好?任何暗示都能帮我解决这个问题。或者请指出我正确的链接,如果它已经讨论过。我在搜查中什么也找不到。
提前谢谢。
最佳答案
我想到的最好的办法是:
for($i=0; $i<5; $i++){
$t = $i;
$t1 = $t+3;
$te= $i+5;
$ti = $i+10;
$a[] = array(
'date' => $t,
'bannana' => $te,
'tea' => $ti,
);
$b[] = array(
'date' => $t1,
'lemon' => $te,
);
$ar1[]=$a;
$ar2[]=$b;
}
foreach($a as $key=>$value){
foreach($value as $k=>$v){
$ar[$value['date']][$k]=$v;
}
}
foreach($b as $key=>$value){
foreach($value as $k=>$v){
$ar[$value['date']][$k]=$v;
}
}
echo var_dump($ar);
其中$a和$b是两个数组,它们的排序依据是“date”。我查看了堆栈溢出,但无法完全为这个确切的情况得到另一个解决方案。
这个函数生成以下var_dump():
array(8) {
[0]=> array(3) {
["date"]=> int(0)
["bannana"]=> int(5)
["tea"]=> int(10)
}
[1]=> array(3) {
["date"]=> int(1)
["bannana"]=> int(6)
["tea"]=> int(11)
}
[2]=> array(3) {
["date"]=> int(2)
["bannana"]=> int(7)
["tea"]=> int(12)
}
[3]=> array(4) {
["date"]=> int(3)
["bannana"]=> int(8)
["tea"]=> int(13)
["lemon"]=> int(5)
}
[4]=> array(4) {
["date"]=> int(4)
["bannana"]=> int(9)
["tea"]=> int(14)
["lemon"]=> int(6)
}
[5]=> array(2) {
["date"]=> int(5)
["lemon"]=> int(7)
}
[6]=> array(2) {
["date"]=> int(6)
["lemon"]=> int(8)
}
[7]=> array(2) {
["date"]=> int(7)
["lemon"]=> int(9)
}
}
关于php - 从多个阵列创建主阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17728595/