Search code examples
phparraysassociative-arraymerging-data

Merge a flat associative array into another associative array


COMPANY ARRAY

array(1) { 
  [0]=> array(19) {
    ["entityid"]=> string(4) "3626" 
    ["entityparentid"]=> string(1) "0" 
    ["entityduplicateof"]=> string(1) "0" 
    ["entitytype"]=> string(1) "0" 
    ["entityname"]=> string(12) "Facebook Inc"
  } 
} 

DISTANCE ARRAY

array(1) { 
  ["distance"]=> string(4) "1.22" 
} 

What I'd like the output to look like:

array(1) { 
    [0]=> array(19) {
        ["entityid"]=> string(4) "3626" 
        ["entityparentid"]=> string(1) "0" 
        ["entityduplicateof"]=> string(1) "0" 
        ["entitytype"]=> string(1) "0" 
        ["entityname"]=> string(12) "Facebook Inc" 
        ["distance"]=> string(4) "1.22" // here
    }
} 

Question:

array_push($company_array,$distance_array); seems to not do what I want it do.

It adds it to the end, but not where i want it to (notice the difference in where it is placed):

array(1) { 
    [0]=> array(19) {
      ["entityid"]=> string(4) "3626" 
      ["entityparentid"]=> string(1) "0" 
      ["entityduplicateof"]=> string(1) "0" 
      ["entitytype"]=> string(1) "0" 
      ["entityname"]=> string(12) "Facebook Inc"
    },

    ["distance"]=> string(4) "1.22" // not here
} 

Solution

  • It has another level inside $company, if you want the single array inside that another nesting, point it to index zero directly, and use array_merge:

    $company[0] = array_merge($company[0], $distance);
    

    Sample Output