Let me try this again. I want to take an array that may look like this array(2) { [0]=> array(8) { ["line"]=> string(1) "1" ["ponbr"]=> string(5) "TEST1" ["emt"]=> string(3) "yes" ["qty"]=> string(1) "5" ["price"]=> string(2) "19" ["shipdate"]=> string(8) "12/04/06" ["tracking"]=> string(9) "123123123" ["approved"]=> string(4) "true" } [1]=> array(8) { ["line"]=> string(1) "2" ["ponbr"]=> string(5) "TEST1" ["emt"]=> string(3) "yes" ["qty"]=> string(1) "5" ["price"]=> string(2) "12" ["shipdate"]=> string(8) "12/04/06" ["tracking"]=> string(12) "123123123123" ["approved"]=> string(4) "true" } } if array['ponbr'] has the same value for all the arrays I want to merge then to get. Hope this make sense, I appreciate any input you can give me to do this efficiently. array(1) { array(8) { ["line"]=> string(1) "1" ["ponbr"]=> string(5) "TEST1" ["emt"]=> string(3) "yes" ["qty"]=> string(1) "5" ["price"]=> string(2) "19" ["shipdate"]=> string(8) "12/04/06" ["tracking"]=> string(9) "123123123" ["approved"]=> string(4) "true" ["line"]=> string(1) "2" ["emt"]=> string(3) "yes" ["qty"]=> string(1) "5" ["price"]=> string(2) "12" ["shipdate"]=> string(8) "12/04/06" ["tracking"]=> string(12) "123123123123" ["approved"]=> string(4) "true" } } Thanks, cybm