2017-03-15 143 views
0

我試圖按時間值組合多個數組。 我有一個這樣的數組。Laravel - 按值組合多個數組

[ 
    { 
     x:"Kasa", 
     y:" 8", 
     id:6, 
     a:0.019444444444444 
    }, 
    { 
     x:"Kasa", 
     y:" 9", 
     id:6, 
     a:0.023611111111111 
    }, 
    { 
     x:"Kasa", 
     y:"10", 
     id:6, 
     a:0.018055555555556 
    }, 
    { 
     x:"Kasa", 
     y:"11", 
     id:6, 
     a:0.025 
    }, 
    { 
     x:"Kasa", 
     y:"12", 
     id:6, 
     a:0.0097222222222222 
    } 
], 
[ 
    { 
     x:"Kasap", 
     y:" 8", 
     id:7, 
     a:0.0013888888888889 
    }, 
    { 
     x:"Kasap", 
     y:" 9", 
     id:7, 
     a:0.015277777777778 
    }, 
    { 
     x:"Kasap", 
     y:"10", 
     id:7, 
     a:0.0027777777777778 
    }, 
    { 
     x:"Kasap", 
     y:"11", 
     id:7, 
     a:0.0041666666666667 
    }, 
    { 
     x:"Kasap", 
     y:"12", 
     id:7, 
     a:0.019444444444444 
    } 
] 

我需要聯合這2個數組與y值。例如結合後的數組應該是這樣的。

[ 
    { 
     x:"Kasa", 
     y:" 8", 
     id:6, 
     a:0.019444444444444 
    }, 
    { 
     x:"Kasap", 
     y:" 8", 
     id:7, 
     a:0.0013888888888889 
    } 
], 
[ 
    { 
     x:"Kasa", 
     y:"11", 
     id:6, 
     a:0.025 
    }, 
    { 
     x:"Kasap", 
     y:"11", 
     id:7, 
     a:0.0041666666666667 
    } 
], 
[ 
    { 
     x:"Kasa", 
     y:"12", 
     id:6, 
     a:0.0097222222222222 
    }, 
    { 
     x:"Kasap", 
     y:"12", 
     id:7, 
     a:0.019444444444444 
    } 
], 
[ 
    { 
     x:"Kasa", 
     y:" 9", 
     id:6, 
     a:0.023611111111111 
    }, 
    { 
     x:"Kasap", 
     y:" 9", 
     id:7, 
     a:0.015277777777778 
    } 
], 
[ 
    { 
     x:"Kasap", 
     y:"10", 
     id:7, 
     a:0.0027777777777778 
    }, 
    { 
     x:"Kasa", 
     y:"10", 
     id:6, 
     a:0.018055555555556 
    } 
] 

該怎麼辦?

+0

格式的代碼,添加您的試用! – Thamilan

+0

已編輯,但放棄投票要求的東西不正常 –

+0

不,它不是我的! – Thamilan

回答

3

既然你標記這個問題 「Laravel」,你可以使用優秀的Collection等級:

collect($array)->flatten(1)->groupBy('y')->toArray() 
+0

這工作謝謝:) –

0

試試這個: 我與這個陣列測試它

array:3 [▼ 
    0 => array:2 [▼ 
    "x" => "Kasaa" 
    "y" => "8" 
    ] 
    1 => array:2 [▼ 
    "x" => "Pasa" 
    "y" => "9" 
    ] 
    2 => array:2 [▼ 
    "x" => "tasa" 
    "y" => "8" 
    ] 
] 

編輯

$array= array_merge($array1, $array2); 
    foreach ($array as $k => $value) { 

     foreach ($value as $key => $v) { 
      if ($key === 'y'){ 
      $result[$v]=''; 
      } 
     } 
    } 
    foreach ($array as $k => $value) { 
     if ($value['y'] == key_exists($value['y'],$result)) { 
      $result[$value['y']][$k]= $value; 

     } 
    } 
+0

現在只需按降序排列 –

+0

現在就試試吧。你將會在'$ result'中得到所有東西 – Onix

+0

現在我得到非法偏移類型錯誤 –

0

地嘗試一下PHP內置array_merge_recursive()函數

$array = array_merge_recursive($array1, $array2); 
or make your own function (it may be faster) 
function my_array_merge(&$array1, &$array2) { 
    $result = Array(); 
    foreach($array1 as $key => &$value) { 
     $result[$key] = array_merge($value, $array2[$key]); 
    } 
    return $result; 
} 
$array = my_array_merge($array1, array2); 
print_r($array);