0

I need to make an array of locations arrays, it must look like this

$relevanceKeys = array(
    'locations' => array(

        array(
            'longitude' => '123456',
            'latitude' => '123456'
        ),
        array(
            'longitude' => '123456',
            'latitude' => '123456'
        )
         ... more arrays
    )  

);

However I need to generate those on the fly, so it starts out like

$relevanceKeys = array(
    'locations' => array(  

    )  
);

And then I want to add each array from a row I found in the database:

while ($row = $result->fetch_object()) {
   $array = array(
               array (
       'longitude' => $row->longitude,
        'latitude' => $row->latitude
           )
   );

$relevanceKeys['locations'] = $relevanceKeys['locations'] + $array;
} 

This does not work though, afterwards the file is not readable. It's exported to a different format so I can't see if it turns into the array tree correctly.

I read how to append PHP arrays from here http://php.net/manual/en/function.array-merge.php

I tried unnested $array and nested in another array as it is now, no luck

2 Answers 2

3

Just append the array like this:

$relevanceKeys['locations'][] = $array;
                         //^^ See here

You don't have to merge them all the time!

Also I think you want to change this:

$array = array(
             array (
                 'longitude' => $row->longitude,
                 'latitude' => $row->latitude
             )
       );

to this to get your expected structure:

$array = array(
             'longitude' => $row->longitude,
             'latitude' => $row->latitude
       );

For more information about array see the manual: http://php.net/manual/en/language.types.array.php

Sign up to request clarification or add additional context in comments.

1 Comment

@Kiwizoom You can also read about this specificly here: php.net/manual/en/…
1

Since you're only needing to push elements to the array, you can simply use the [] struct as follows:

while ($row = $result->fetch_object()) 
{
    $relevanceKeys['locations'][] = array (
        'longitude' => $row->longitude,
        'latitude' => $row->latitude
    );
} 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.