Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Array combining not working

Tags:

arrays

php

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
} 
like image 211
ChicagoDude Avatar asked Apr 22 '15 00:04

ChicagoDude


2 Answers

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

like image 200
Kevin Avatar answered Oct 20 '22 08:10

Kevin


Another way to merge the two arrays is the + operator:

$company[0] = $company[0] + $distance;

A detailed explanation of the difference between array_merge and the + can be found here.

like image 41
Matthew Johnson Avatar answered Oct 20 '22 08:10

Matthew Johnson